我想用Map初始化一个递归函数。要声明一个带有值的只读字典,我们可以做:
fd is nil
现在,我想创建一个空字典。如何实现?
我正在寻找类似的东西:
let dictionary1 = dict [ (1, "a"); (2, "b"); (3, "c") ]
答案 0 :(得分:5)
您可以这样做:
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 []
答案 1 :(得分:1)
由于地图是.NET Dictionary
,因此可以
let dictionary1 = new System.Collections.Generic.Dictionary<int, string>()
我不知道是否有更好的方法。
答案 2 :(得分:1)