首页 > 解决方案 > 很想声明一个空的地图/字典?

问题描述

我想用 Map 初始化一个递归函数。要声明一个带值的只读字典,我们可以这样做:

let dictionary1  = dict [ (1, "a"); (2, "b"); (3, "c") ]       

在线尝试!

现在,我想创建一个空字典。如何做到这一点?

我正在寻找类似的东西:

let dictionary1 = {} // <- ok this is js
let (stuff, dictionary2) = parseRec("whatever", dictionary1)

标签: f#

解决方案


你可以做:

let dictionary1  = dict []

for elem in dictionary1 do
   printfn "Key: %d Value: %s" elem.Key elem.Value

这给了你一个空字典。

printfn用法向类型推理引擎揭示了键和值的正确类型。

如果您想明确,则可以通过多种方式指定类型:

let dictionary1 = dict Seq.empty<int * string>
let dictionary1 = dict ([] : (int * string) list)
let dictionary1 = dict [] : System.Collections.Generic.IDictionary<int, string>
let dictionary1 : System.Collections.Generic.IDictionary<int, string> = dict []

推荐阅读