F#教程:Dictionary


学习数组、List和Tuple后,这回我们要学习Dictionary。

let dictionary = dict [ (1, "Up"); (2, "Down"); (3, "Left"); (4,"Right") ]
let v = dictionary.[1] 
printfn "%A" v 
printfn "%A" dictionary.[4]
for e in dictionary do 
        printfn "%d %s" e.Key e.Value

  dict不是关键字,而是标准库中定义的函数。选择第一行代码,通过Alt+Enter就可以看到如下显示:

  val dictionary : System.Collections.Generic.IDictionary<int,string>

  通过使用for语句,可以逐个取出各个要素。也可以使用Key, Value属性取出值。for可以取出的值的类型是.NET的KeyValuePair。 

  此外我们还可以通过使用.NET Framework类的创建一个空的Dictionary:

  let hist = new Dictionary<char,int>()

  由于是.NET类,就可以照常使用它的方法了:

  if hist.ContainsKey(c) then

  或则

  hist.Add(c,v+1)

  这些都是OK的。但是如下代码会出现编译警报:

  hist.Remove(c)

  原因就是有返回值的方法需要得到处理。代码如下:

  let _ = hist.Remove(c)

  是不是有点严格啊?如果想忽略掉就可以和上述代码一样使用_。

  当然也可以像如下一样写代码:

for KeyValue(k,v) in dictionary do
        printfn "Key=%d Value=%s" k v


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3