如何解决F# 匿名记录错误不匹配/意外-Visual Studio 2019
您好,我遇到了来自 F# 类的代码的问题。我有带有 F# 和 .NET 包的 VS2019,一切正常,直到出现异常记录。
type Student = {
imie: string;
nazwisko: string;
wiek:int;
rokStudiow:int;
}
let dane = [
{imie="Kowalska"; nazwisko="AA"; wiek=21; rokStudiow = 1};
{imie="Nowak"; nazwisko="BB"; wiek=31;rokStudiow = 2}; // musza byc sredniki
{imie="Adamski";nazwisko="CC"; wiek=41; rokStudiow = 3}; // kolekcja studentow
{imie="Kot";nazwisko="DD"; wiek=51; rokStudiow = 2};
{imie="Konopnicki";nazwisko="EE"; wiek=21; rokStudiow=2}
]
let wynik = List.map (fun o -> { | imie=o.imie;nazwisko=o.nazwisko | }) dane
解决方法
这是一个简单的语法错误。
匿名记录写为
let foo = {| a=1; b="hi" |}
您在花括号和管道之间插入了一个空格。
只需将您的作业更改为
let wynik = List.map (fun o -> {| imie=o.imie;nazwisko=o.nazwisko |}) dane
你应该没事了。
(顺便说一句,您的代码中有很多多余的分号。例如,您可以跳过 type Student
定义中的所有分号
此外,更惯用的 f# 语句是
let wynik = dane |> List.map (fun o -> {| imie=o.imie;nazwisko=o.nazwisko |})
不过这纯粹是风格问题。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。