在while循环中更新FSharpMap [] 让主argv= 设linshi1=[| 1,2 |] 设linshi2=Array.append linshi1[| 2,3 |] 设map1=Map.ofArray linshi2 设可变it=1 当它=1时 它
首先,您不能“更新”,因为它是不可变的数据结构,即添加到地图会生成另一个地图。目前尚不清楚如何将读取Excel与更新地图相结合,但您可以随时执行以下操作在while循环中更新FSharpMap [] 让主argv= 设linshi1=[| 1,2 |] 设linshi2=Array.append linshi1[| 2,3 |] 设map1=Map.ofArray linshi2 设可变it=1 当它=1时 它,map,f#,local,mutable,Map,F#,Local,Mutable,首先,您不能“更新”,因为它是不可变的数据结构,即添加到地图会生成另一个地图。目前尚不清楚如何将读取Excel与更新地图相结合,但您可以随时执行以下操作 [<EntryPoint>] let main argv = let linshi1 = [|1,2|] let linshi2 = Array.append linshi1 [|2,3|] let map1 = Map.ofArray linshi2 let mutable it = 1
[<EntryPoint>]
let main argv =
let linshi1 = [|1,2|]
let linshi2 = Array.append linshi1 [|2,3|]
let map1 = Map.ofArray linshi2
let mutable it = 1
while it = 1 do
it <- it - 1
let map2 = map1.Add(3,4)
let map1 = map2
printfn "!\n"
printfn "done"
0
正在执行的将按预期输出map[(1,2);(2,3);(3,4)]
。首先,您不能“更新”,因为它是不可变的数据结构,即添加到一个map会生成另一个map。目前尚不清楚如何将读取Excel与更新地图相结合,但您可以随时执行以下操作
[<EntryPoint>]
let main argv =
let linshi1 = [|1,2|]
let linshi2 = Array.append linshi1 [|2,3|]
let map1 = Map.ofArray linshi2
let mutable it = 1
while it = 1 do
it <- it - 1
let map2 = map1.Add(3,4)
let map1 = map2
printfn "!\n"
printfn "done"
0
正在执行的将按预期输出
map[(1,2);(2,3);(3,4)]
。+1这个答案绝对正确。只是一个小问题-您实际上不需要更改map1。将添加到类似(3,4)| |>Map.Add@TomasPetricek:感谢您提醒我们,有时使用类型实例方法可能比使用类型模块函数更可取。+1这个答案绝对正确。只是一个小问题-您实际上不需要更改map1。将添加到类似(3,4)| |>Map的内容中。Add@TomasPetricek:感谢您提醒我们,有时使用类型实例方法可能比使用类型模块函数更可取。
[<EntryPoint>]
let main argv =
let linshi1 = [|1,2|]
let linshi2 = Array.append linshi1 [|2,3|]
let map1 = Map.ofArray linshi2
let map1 = (3,4) ||> Map.add <| map1
printfn "%A" map1
0