Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dictionary 未定义Map.change_Dictionary_F# - Fatal编程技术网

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运行代码时,一切正常。谢谢另外,为什么官方文档会在默认情况下描述该语言的预览功能而不提及它,这超出了我的理解。。。