F# 使用匿名记录会出现语法错误:FS0010:意外符号'|';表达

F# 使用匿名记录会出现语法错误:FS0010:意外符号'|';表达,f#,F#,我渴望使用F#4.6匿名记录,但编译器似乎没有“理解”。如何指定我使用的是4.6?我尝试了很多谷歌搜索,但是没有关于如何实际告诉编译器使用最新版本(?)的文档 启动一个新的dotnet新控制台-lang F#-o src/App,并尝试制作一个虚拟示例: open System [<EntryPoint>] let main argv = let myrec = {| X=3; Y=4 |} printfn "Hello World from F#! test %A

我渴望使用F#4.6匿名记录,但编译器似乎没有“理解”。如何指定我使用的是4.6?我尝试了很多谷歌搜索,但是没有关于如何实际告诉编译器使用最新版本(?)的文档

启动一个新的
dotnet新控制台-lang F#-o src/App
,并尝试制作一个虚拟示例:

open System

[<EntryPoint>]
let main argv =
    let myrec = {| X=3; Y=4 |}
    printfn "Hello World from F#! test %A" myrec
    0 // return an integer exit code
我的App.fsproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="Program.fs" />
  </ItemGroup>

</Project>

Exe
netcoreapp2.2
原来是我的.NET核心运行时太落后了。由于MacOS的不稳定警告,我没有安装最新版本,但我现在看到,您需要MacOS的不稳定版本来支持F#4.6


解决方案是只需转到并安装最新版本

您有VS2019或.NET Core>=2.1吗?我不使用Visual Studio,也不想依赖IDE来运行代码,因此我使用
dotnet
(cli工具)。我已经安装了最新版本的dotnet和.net内核。(至少是支持mac的最新版本)。这可能是苹果的东西吗?安装后是否需要重新启动计算机?(这会很奇怪,但是:在绝望的时候……)你能确认一下
dotnet--version
返回了一些版本>
2.1
?(例如,对我来说,它是
2.2.202
,你的代码可以工作……但我现在在Windows上’_(ツ)_/“).dotnet版本是2.2.107。但过时的是运行时,而不是SDK。我急于在此页面上安装最新版本:因为它说它在MacOS(我的操作系统)上有问题。但我还是继续安装了它,现在它终于起作用了=调整一下:它是“VS for Mac不稳定”;如果您不使用VS for Mac,最新的SDK对于macOS来说是完美的。
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="Program.fs" />
  </ItemGroup>

</Project>