gpt4 book ai didi

dictionary - 如何在 f# 中创建 map 副本?

转载 作者:行者123 更新时间:2023-12-02 16:25:55 30 4
gpt4 key购买 nike

   let students =
Map.empty.
Add("ABC", "97").
Add("Jill", "98");;
printfn "Map - students: %A" students

我知道这会创建一个名为 students 的 map 。我正在考虑一种方法来创建具有相同键和值的此 map 的副本。我检查了 f# 的文档,但没有找到任何克隆/创建 map 副本的方法。

最佳答案

F# 映射是不可变的。这意味着“更改” map 实际上意味着创建一个略有改动的副本。复制过程使用技巧使其比完整复制快得多。新版本实际上可以将大部分数据指向旧版本。这样做是安全的,因为 map 是不可变的:它们永远不会改变。

这意味着没有理由复制 map ,除了预热你的 CPU 😆

这同样适用于 F# 中的 ListSet,因为它们也是不可变的。习惯使用不可变数据结构需要一段时间,但一旦你习惯了,生活就会变得更轻松。


顺便说一下,您可以像这样用更少的代码创建 map :

let students =
[ "ABC", "97"
"Jill", "98" ]
|> Map

关于dictionary - 如何在 f# 中创建 map 副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64546727/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com