没评论
分类: Python/Ruby
2012-05-24 17:31:42
可以用下标数字来访问数组,如$fred[0]。任何求值可以得到数字的表达式都可以用作下标。假如它不是整数,则会自动舍去小数。如果下标没有对应的值,则会返回undef。
注意:索引表达式中的变量如果是字符串,会按字符串转换成数字的规则来进行转换。举例说明:$y包含字符串"2*4",$fred[$y-1]为$fred[1],因为2*4看做数字时为2。
特殊的数组索引值
数组$fred,$#fred表示最后一个元素的索引值,$fred[-1]表示最后一个元素。
列表直接量
("fred",4.5) #包含"fred"和"4.5"两个元素
(1..100) #1到100的整数列表
这里用到的范围操作符“..”的作用:从左边的数字计数到右边,每次加1,从而产生一连串的数字。举例如下:
(1.7..5.7) #相当于(1,2,3,4,5),两个数字的小数部分会被去掉
(5..1) #空列表,..只向上计数
($m..$n) #从$m到$n的列表
qw简写
可以用qw来建立简单的单词列表: qw( fred barney betty Wilma dino)
这样的表达方式更简洁,其中的空白符号会被忽略。除了圆括号外,可以使用其它的任意标点符号来做定界符。
pop和push操作符
pop操作符用来去除数组中的最后一个元素,同时返回该元素值。用法:pop @array
push操作符用来在数组末尾增加元素,同时返回追加后的数组元素个数。用法:push @array,@array2 push @array,xyz push (@array,xyz)
shift和unshift作用类似于pop和push,只是作用在数组的最开头。
Splice操作符
用于在数组中间进行元素操作。它包含4个参数:
数组名 开始位置 操作长度(可选) 替换列表(可选)
Splice @array,1,2,qw/ wilma /; #移出数组@array的第2和第3个元素,并在此插入wilma
注意:这里的开始位置指的是索引值。
Reverse操作符
Reverse操作符会读取列表的值,并按相反的次序返回该列表。
字符串中的数组内插
双引号内的数组内插时,各元素间会被自动加入空格。
标量上下文和列表上下文
在perl中表达式会按照上下文要求返回对应的值。如数组在标量上下文中返回的是数组的元素个数,在列表上下文中返回的是元素列表。
在列表上下文中强制指定标量上下文,如:
Print "I have ", scalar @rocks, "\n"; # scalar在这里的作用就是强制指定@rocks为标量