美文网首页
第6章 哈希

第6章 哈希

作者: Hannahhao | 来源:发表于2020-03-07 15:49 被阅读0次

越到后面越晕,真的不知道那些字符、标点、括号哪个是哪个,代表什么了。。。

1. 什么是哈希

哈希:是一种数据结构,和数组相似之处是可以容纳任意多的值,不同之处是检索方式不同(数组以数字下标来检索,哈希以键key来检索)。
哈希的键,唯一的名字,只能使用普通的字符串表示。

- 为什么使用哈希

“找出重复项、唯一的、交叉引用、查表”等字眼的问题,需要用到哈希。

2. 访问哈希 ${ key }

使用语法:
$hash{$some_key}
数组是[]索引,哈希是{}
哈希变量的命名不能以数字开头。

- 访问整个哈希 %

要指代整个哈希,可以用百分号%作为前缀。
%family_name

- 哈希赋值 =

my %new_hash = %old_hash;

- 胖箭头 =>

my %last_name = (
     'fred' => 'flinstone',
     'dino' => undef,
     'barney' => 'rubble'
);

3. 哈希操作符

- keys和values函数

keys函数:返回哈希的键列表;
value函数:返回对应的值列表。

my %hash = ('a' => 1, 'b'=> 2, 'c' => 3);
my @k = keys %hash;
my @v = values %hash;

- each函数

each函数:遍历哈希的每一个键-值对。唯一合适使用each的地方是在while循环中:

while ( ($key, $value) = each %hash ) { 
    print "$key => $value\n";
}

4. 哈希的典型应用

举例:某图书馆使用一个Perl程序,通过哈希记录每个人当前借走几本书。

- exists函数

exists函数:检查哈希中是否存在某个键,用在if判断语句中,存在返回真,不存在返回假。

- delete函数

delete函数:从哈希中删除指定的键及其相对应的值。

- 哈希元素内插

可以将单一哈希元素内插到双引号引起的的字符串中

foreach $person (sort keys %books) {
    if ($books{$person}) {
       print "$person has $books{$persons} items\n";
   }
}

4. 特殊哈希%ENV

特殊哈希%ENV不用设置直接就能用。
Perl会把环境信息放到特殊哈希%ENV里面,比如从%ENV中读取键位PATH的值:
print "PATH is $ENV{PATH}\n";
输出大概为
PATH is /usr/local/bin:/usr/bin:/sbin:/usr/sbin

相关文章

网友评论

      本文标题:第6章 哈希

      本文链接:https://www.haomeiwen.com/subject/bevarhtx.html