如何在F#中完成全局范围界定

时间:2012-03-23 17:30:06

标签: f# scope global-variables

我需要在F#中创建一个具有键值对且在范围内是全局的集合。

2 个答案:

答案 0 :(得分:7)

你可以这样做:

[<AutoOpen>]
module Globals =
  let map = System.Collections.Generic.Dictionary<_,_>()

然后在整个程序中使用它不合格:

map.Add(1, "a")
map.Add(2, "b")
map |> Seq.iter (fun (KeyValue(k, v)) -> printfn "Key: %d, Value: %s" k v)

答案 1 :(得分:4)

取决于你正在做什么样的项目,最好的方法可能就是在模块中声明它:

module GlobalVals =

    let myCollection = .... // whatever

您可以将其与

一起使用
GlobalVals.myCollection...