splice 操作符
几乎所有的数组操作都可用 splice 实现。 除了第一个参数,数组,为必须,其余的参数都不是必须的。
splice ARRAY, OFFSET, LENGTH, LIST
OFFSET 和 LENGTH 定义了 ARRAY 中将要删除的部分, LIST 表示在删除的位置上要添加的元素。 如果LIST 省略,表示只删除,不增加。
怎样从数组中删除元素
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
splice @dwarfs, , ;
# 从Sleepy 删除2个元素,移除Sleepy Sneezy
print "@dwarfs"; # Doc Grumpy Happy Dopey Bashful
怎样在数组中添加一个元素?
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
splice @dwarfs, , , 'SnowWhite';
# 0 表示不移除,添加后边的列表
print "@dwarfs";
# Doc Grumpy Happy SnowWhite Sleepy Sneezy Dopey Bashful
怎样在数组中增添多个元素?
其实,增添一个元素是增添多个元素的特殊情况。
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
splice @dwarfs, , , 'SnowWhite', 'Humbert';
print "@dwarfs"; # Doc Grumpy Happy SnowWhite Humbert Sleepy Sneezy Dopey Bashful
怎样把一个数组中的元素添加到另一个数组中?
只要把splice的第四个参数换成你想要添加的数组就好了。
my @others = qw(SnowWhite Humbert);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
splice @dwarfs, , , @others;
print "@dwarfs"; # Doc Grumpy Happy SnowWhite Humbert Sleepy Sneezy Dopey Bashful
替换掉数组中的某些元素?
添加和删除一起完成。
my @others = qw(SnowWhite Humbert);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
splice @dwarfs, , , @others;
print "@dwarfs\n"; # Doc Grumpy SnowWhite Humbert Bashful
返回值
在 LIST 情境 splice 返回移除的值.
my @others = qw(SnowWhite Humbert);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
my @who = splice @dwarfs, , , @others;
print "@who\n"; # Sleepy Sneezy
在 SCALAR 情境,返回最后一个移除的值,如果没有值被移除,则返回 undef。
my @others = qw(SnowWhite Humbert);
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
my $who = splice @dwarfs, , , @others;
print "$who\n"; # Sneezy
参数为负值?
偏移值(OFFSET)和长度(LENGTH)值都可以为负数,表示从数组的末尾算起。
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful); #偏移为3,即从第四个算起,-1 表示直到整个数组的倒数第一个。
my @who = splice @dwarfs, , -;
print "@who"; # Sleepy Sneezy Dopey
my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful); #从倒数第三个开始,向右移除的第一个元素。
my @who = splice @dwarfs, -, ;
print "@who"; # Sneezy
splice 操作符的更多相关文章
- perl学习之路3
Perl编程之路3 标签: perl 列表与数组 Perl里面代表复数的就是列表和数组 列表(list)指的是标量的有序集合, 而数组(array)则是存储列表的变量. 在Perl这两个属于尝尝混 ...
- perl语言入门总结-第3章-列表与数组
1-列表list指的是标题的有序集合, 而数组(array)则是存储列表的变量. 更精确地说,列表指的是数据,而数组指的是变量. 访问数组中的元素 ] = "yabba"; ] = ...
- perl第三章 列表和数组
访问数组中的元素 $fred[0] $fred[1] $number=2.75; print $fred[$number-1] 结果就是print $fred[1] 特殊的数组索引1.对索 ...
- Perl语言入门(中文版)(第6版) 东南大学出版社
第一章简介 问题与答案 这本书适合你吗? 为何有这么多的脚注? 关于习题和解答? 习题前标的数字是什么意思? 如果我是Perl讲师? “Perl”这个词表示什么意思? Larry为什么要创造Perl? ...
- JavaScript中in操作符(for..in)、Object.keys()和Object.getOwnPropertyNames()的区别
ECMAScript将对象的属性分为两种:数据属性和访问器属性.每一种属性内部都有一些特性,这里我们只关注对象属性的[[Enumerable]]特征,它表示是否通过 for-in 循环返回属性,也可以 ...
- [转] JavaScript中in操作符(for..in)、Object.keys()和Object.getOwnPropertyNames()的区别
ECMAScript将对象的属性分为两种:数据属性和访问器属性.每一种属性内部都有一些特性,这里我们只关注对象属性的[[Enumerable]]特征,它表示是否通过 for-in 循环返回属性,也可以 ...
- JavaScript基本知识----操作符,流程控制,循环,字符串方法,数组方式,补充方法
操作符 算术运算 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- JS 操作符、控制流程、循环、字符串/数组方法
操作符 算术运算符:+ .- . * . / . %.++.-- 赋值运算符:= .+=.-=. *=./=.%= 比较运算符:>.>=.<.<=.!=.==.===(全等,数 ...
- Oracle 的基本操作符
!= 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...
随机推荐
- MIPI D-PHY 简写收集
Acronyms APPI Abstracted PHY-Protocol InterfaceBER Bit Error Rate 417 CILControl ...
- Linux下安装MySQL5.6
传送门:http://www.jianshu.com/p/f4a98a905011 字数802 阅读164 评论0 喜欢4 环境:1.操作系统:CentOS release 6.8 (Final)2. ...
- 洛谷 P1040 加分二叉树
题目描述 设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号.每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都 ...
- c#委托和事件(下) 分类: C# 2015-03-09 08:42 211人阅读 评论(0) 收藏
C#中的委托和事件(下) 引言 如果你看过了 C#中的委托和事件 一文,我想你对委托和事件已经有了一个基本的认识.但那些远不是委托和事件的全部内容,还有很多的地方没有涉及.本文将讨论委托和事件一些更为 ...
- ng-if与ng-show、ng-hide指令的区别和注意事项
http://blog.csdn.net/aitangyong/article/details/44701769
- Android 动画之RotateAnimation应用详解
android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 TranslateAnimation 位移动画效果 RotateAnimat ...
- 小猪的Android入门之路 Day 3 - part 3
小猪的Android入门之路 Day 3 - part 3 各种UI组件的学习 Part 3 本节引言: 在前面两个部分中我们对Android中一些比較经常使用的基本组件进行了一个了解, part 1 ...
- Spring Data MongoDB example with Spring MVC 3.2
Spring Data MongoDB example with Spring MVC 3.2 Here is another example web application built with S ...
- JS 拼凑字符串
和Java一样,JS中直接用"+"号拼凑字符串是很耗费资源的,所以在大量拼凑字符串的情景中,我们也需要一个类似于StringBuffer的工具, 下面利用Array.join()方 ...
- css考核点整理(九)-有几种文字替换方式,之间的优缺点
有几种文字替换方式,之间的优缺点