Learning Perl(Perl语言入门)学习笔记(5)

 

第六章      散列

 

1、  散列是一种数据结构,可以包含任意多个值,并以“键”来寻找相应的值;键通常都是字符串,且可以是任意字符串,但彼此间不能相同,对应的值则不受此限制;散列中的元素没有固定顺序,只有“键-值对”的组合;键和值都是任意的标量,但键总是被当作字符串;

2、  访问散列元素使用 $hash{$some_key} 的格式,键是字符串,也可以是任何表达式;散列变量名称亦属于独立的名称空间;对某个已经存在的散列元素赋值会覆盖原有的值,对事先不存的散列元素赋值,散列元素会自动产生;

3、  访问整个散列使用 %some_hash 的格式;散列和列表可以互相转换(如:@any_array = %some_hash,此为“展开”散列,顺序可能会发生变化),因此,对散列赋值等于在列表上下文中赋值,其列表是由“键-值对”构成;

4、  散列可以使用一般赋值语法复制,如:%new_hash = %old_hash ,但不常用;常用的做法是以某种方式转换散列,如建立反序散列可以使用类似:%inverse_hash = reverse  %any_hash

5、  为避免在对散列赋值时难以分辨“键”、“值”的对应关系,可以使用大箭号来代替赋值列表中的任何逗号,当然,其一般用来实现“键=>值”这样的对应;

6、  keys函数会返回当前散列的键列表,values函数会返回当前散列的值列表,当前散列无元素时,二者均返回空列表;新增元素至散列时,可能会重新排序;散列可以当成布尔表达式使用,即如果至少有一组“键-值对”,结果为真,反之为假;

7、  each函数可以遍历整个散列的“键-值对”,返回值为相应的“键-值对”,访问最后一个元素后再一次调用将返回空列表;each函数常用于while循环的条件表达式,此时each函数调用返回给while的值在有可用“键-值对”时为“2,否则为“0(条件表达式为标量上下文);

8、  exists函数用来查看某个是否存在于散列中(无论其是否被赋值),存在,返回“真”,否则为“假”;delete函数用来从散列中移除指定的及其对应的

单一散列元素可以在双引号内进行替换,但不能对类似于 “%hash” 的整个散列替换,因为除了几个指定的转义字符(针对于printf函数,如%s等)外,百分号及其后面的散列名称在双引号内会原样输出;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值