操作Perl数组: shift, unshift, push, pop
来源:互联网 发布:软件企业营改增 编辑:程序博客网 时间:2024/05/16 01:32
转载自Perl Maven
https://cn.perlmaven.com/manipulating-perl-arrays
操作Perl数组: shift, unshift, push, pop
和可以直接访问单独的数组元素一样,Perl也提供了很多其它有趣的方式来操作数组。特别是,有些函数可以很方便有效的将Perl的数组作为栈或者队列来使用。
pop
pop
函数会删除并返回数组的最后一个元素。
在第一个例子(3元素数组)中可以看到,pop
函数删除最后一个元素(下标最大)并返回它。
my @names = ('Foo', 'Bar', 'Baz');my $last_one = pop @names;print "$last_one\n"; # Bazprint "@names\n"; # Foo Bar
如果原数组为空,pop函数会返回undef。
push
push
函数可以在数组的后面添加一个或多个值。(当然,也可以添加0个值,但是没有用,不是么?)
my @names = ('Foo', 'Bar');push @names, 'Moo';print "@names\n"; # Foo Bar Moomy @others = ('Darth', 'Vader');push @names, @others;print "@names\n"; # Foo Bar Moo Darth Vader
在这个例子中我们最初有个两元素数组。之后我们向数组尾部push了一个标量,数组扩展成了3元素数组。
第二次调用push
,我们push
了@others
数组的内容到@names
尾部,把它扩充成5元素数组。
shift
shift函数会让整个数组左移。设想一下,数组从左边开始。数组的第一个元素会从数组“掉下来”,并成为函数的返回值(如果数组为空,shift
会返回 undef
。)
这样操作之后,数组会减少一个元素。
my @names = ('Foo', 'Bar', 'Moo');my $first = shift @names;print "$first\n"; # Fooprint "@names\n"; # Bar Moo
这和pop
很像,但是它作用于数组索引的小端。
unshift
这是shift
的反函数。unshift
会传入一个或多个值(或者0个) 并把它放在数组的开头,将其他元素右移动。
你可以向它传单个的标量,那么这个值会成为数组的第一个元素。或者像第二个例子那样,你可以传递第二个数组,那么第二个数组的所有元素(我们例中的@others
)会复制到主数组的开头(例中@names
),并将其他元素向高索引方向移动。
my @names = ('Foo', 'Bar');unshift @names, 'Moo';print "@names\n"; # Moo Foo Barmy @others = ('Darth', 'Vader');unshift @names, @others;print "@names\n"; # Darth Vader Moo Foo Bar
阅读全文
0 0
- 操作Perl数组: shift, unshift, push, pop
- 操作Perl数组: shift, unshift, push, pop
- 【Perl读书笔记】数组操作push、pop、shift和unshift
- 数组的操作push,pop,shift,unshift
- Perl 数组应用详解(push, pop, shift, unshift)
- Perl学习(十三)——数组操作总结 push pop shift unshift
- ActionScript中数组操作(一):push(pop)与unshift(shift)
- Js数组的操作push,pop,shift,unshift等方法
- js中 数组的操作 push(),pop(),shift(),unshift() 简介
- js 数组 pop,push,unshift,splice,shift
- 数组添加删除----unshift,shift,pop,push
- pop,push,shift,unshift
- shift/unshift/push/pop区别
- JavaScript 数组操作函数总结(push,pop,join,shift,unshift,slice,splice,concat)
- Js数组的操作push,pop,shift,unshift等方法详细介绍
- js数组操作大全(pop,push,unshift,splice,shift方法)
- 转:js数组操作大全(pop,push,unshift,splice,shift方法)
- js数组操作大全(pop,push,unshift,splice,shift方法)
- Solr开发
- 排序感想
- 安卓开发最简单的网络广播监听
- 浅析python 中__name__ = '__main__' 的作用
- GreenDao实体类实现Serializable接口报错
- 操作Perl数组: shift, unshift, push, pop
- Python编程--正则表达式
- c# log4net 日志添加
- 十分好看的Modern UI for WPF的移植(一)获取源码&运行demo
- js下载文件
- linux系统分析工具续-SystemTap和火焰图(Flame Graph)
- python 导入文件引用
- 深圳起航创势科技有限公司面试
- 断更已久的博客记录