您的位置:首页 > 其它

VimScript脚本语言学习------常用的内置函数---(操纵Dictionary)

2014-03-09 11:42 239 查看
Dictionary是VimScript中最复杂的数据类型,等同于PHP中的关联数组,其本质是以字符串为键的哈希表。在PHP中,索引数组和关联数组统一为Array数据类型,而在VimScript里则分成了List和Dictionary两个类型。个人觉得还是PHP的做法更好。

下面就来看看Vim为我们提供了那些内置的与Dictionary有关的函数。

(1)get( {dict}, {key} [, {defaut}])

这个与操作list的get完全同理,只是使用键代替了索引值。

(2)len({expr})

这个与操作List的len完全同理。

(3)has_key({dict}, {key})

判断dict是否含有键key。有则返回1, 没有则返回0

(4)empty { {exprt} )

判断是否为空,与List的empty()同理。

(5)remvoe({dict}, {key})

删除dict中具有指定键值的元素。

(6)extned( {expr1}, {expr2} [, {expr3}])

在前面List操作函数中也出现了,用于合并两个dict。

(7)filter({expr}, {string})

在前面List操作函数中也出现了,用于删除不满足要求的元素。

(8)map({expr}, {string})

在前面List操作函数中也出现了,用于修改每一个元素。

(9)keys({dict})

返回一个数组,数组中的元素是dict的所有键值。

(10)values({dict})

返回一个数组,数组中的元素是dict的所有值。

(11)itmes({dict})

返回一个数组,数组中的元素是dict的键值对组成的子数组。

(12)copy(),deepcopy()

在前面List操作函数中也出现了,深浅复制。

(13)string()

序列化为字符串,前面也讲过了。

(14)max(),min(),count()

统统与List的函数类似。

可以看出,List和Dictionary共享很多函数,毕竟两者都是集合数据类型。难怪PHP直接把两者统一为同一种类型。下面给出Dictonary特有的函数的示例用法:

let dict = {"id":1, "name": '张三', "score": 98.5}
echo keys(dict)
echo values(dict)
echo items(dict)
echo len(dict)

echo get(dict, "name")
echo get(dict, "sex")

echo dict["sex"]

let dict["sex"] = '男'
echo dict["sex"]


结果:

['score', 'id', 'name']
[98.5, 1, '张三']
[['score', 98.5], ['id', 1], ['name', '张三']]
3
张三
0
Error detected while processing /root/t4.vim:
line   10:
E716: Key not present in Dictionary: sex
E15: Invalid expression: dict["sex"]
男


另外,我们发现vim并没有提供增加一个元素的函数,其实这没有必要,因为可以直接通过let dict["key"]=xxx来完成,上面的例子也演示了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: