Dictionary 未定义Map.change
我正在尝试调用该函数。它在文档中有明确的定义,但对我来说并不适用。我尝试过打开不同的名称空间(例如Dictionary 未定义Map.change,dictionary,f#,Dictionary,F#,我正在尝试调用该函数。它在文档中有明确的定义,但对我来说并不适用。我尝试过打开不同的名称空间(例如FSharp.Core,Microsoft.FSharp.Collections),但没有成功 open FSharp.Collections [<EntryPoint>] let main argv = let testMap = Map.empty.Add("test", true).Add("otherTest", false)
FSharp.Core
,Microsoft.FSharp.Collections
),但没有成功
open FSharp.Collections
[<EntryPoint>]
let main argv =
let testMap = Map.empty.Add("test", true).Add("otherTest", false)
let newTestMap =
testMap
|> Map.change // Here's the error!
"otherTest"
(fun v ->
match v with
| Some b -> Some (not b)
| None -> None )
printf(newTestMap)
0
打开FSharp.Collections
[]
让主argv=
让testMap=Map.empty.Add(“test”,true)。Add(“otherTest”,false)
设newTestMap=
测试图
|>Map.change//这里是错误!
“其他测试”
(乐趣v->
匹配
|有些b->有些(不是b)
|无->无)
printf(newTestMap)
0
尝试运行上述示例代码时,我遇到以下错误:
错误FS0039:未定义值、构造函数、命名空间或类型“change”。
如何使用Map.change
?您的代码有效(除了printf
)。也许可以检查你的F#或.NET(核心)版本。集合命名空间不必打开
let testMap = Map.empty.Add("test", true).Add("otherTest", false)
let newTestMap =
testMap
|> Map.change // Here's the error!
"otherTest"
(fun v ->
match v with
| Some b -> Some (not b)
| None -> None )
printf "%A" newTestMap // map [("otherTest", true); ("test", true)]val it : unit = ()
我的
dotnet
版本是3.1.402
,F#:4.7
。更新到3.1.403
(F#4.7也随附)后,我仍然收到相同的错误,dotnet build
失败。。。您的dotnet
版本是什么?好的,我已经尝试在dotnet fsi
中运行相同的代码-这里我收到一条警告,说实验库功能,需要“--langversion:preview”。可以使用“--nowarn:57”或“#nowarn“57”禁用此警告。
。当我从dotnetfsi--langversion:preview运行代码时,一切正常。谢谢另外,为什么官方文档会在默认情况下描述该语言的预览功能而不提及它,这超出了我的理解。。。