F#教程:Dictionary - 面向对象网 f# 学习 对象 - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > OOP语言 > F# > 正文

F#教程:Dictionary

来源: www.bianceng.cn 阅读:

学习数组、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

Tags:
相关文章列表: