数组的优缺点:
元素内容可由下标直接得到。基址 + 下标 * 元素大小,是访问最快的方法。
缺点:
元素内容与位置无关。
HASH数组的特点:
1.有的位置可能无值为空,但也要留出空间。浪费空间,换取时间
2.数组内容没有顺序的
3.对查找单个值,比数组通过索引立即找到值慢,多了函数计算。但比链表块,不用从头到尾查一遍。
HASH 数组的形式: %h=('a',1,'b',2);
以%开头,与$h是不同的变量。()为空散列。
关联数组的下标称为关键字key, 由key得到的为值value
%h=('a'=>1,'b'=>2);键和值间的逗号可为=>,相当于逗号。
%h=(a=>1,b=>2);键的引号可省略,用=>时自动认为是字符窜。
元素形式: $hash{'a'}
元素为简单变量,用$。 key为简单变量类型
$h{2.5}, ${-1},$h{$k}
关联数组的赋值
标准: %a=("key1",1,"key2",2);
数组和散列间赋值:%h=@a,散列也是数组。
@a=%h,数组元素的顺序随机。
%h1=%h2
($a,%h)=@array;
%h=(%first,%second),浪费内存
%h1=(%h2,'k','v'),增加一组键值。必须成对出现。
函数的返回: