zoukankan      html  css  js  c++  java
  • splice 操作符

    几乎所有的数组操作都可用 splice 实现。 除了第一个参数,数组,为必须,其余的参数都不是必须的。

    splice ARRAY, OFFSET, LENGTH, LIST

    OFFSET 和 LENGTH 定义了 ARRAY 中将要删除的部分, LIST 表示在删除的位置上要添加的元素。 如果LIST 省略,表示只删除,不增加。

    • 怎样从数组中删除元素

    my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
    splice @dwarfs, 3, 2; 
    # 从Sleepy 删除2个元素,移除Sleepy Sneezy
    print "@dwarfs";    # Doc Grumpy Happy Dopey Bashful
    • 怎样在数组中添加一个元素?

    my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
    splice @dwarfs, 3, 0, 'SnowWhite';
    # 0 表示不移除,添加后边的列表
    print "@dwarfs";
    # Doc Grumpy Happy SnowWhite Sleepy Sneezy Dopey Bashful
    • 怎样在数组中增添多个元素?

              其实,增添一个元素是增添多个元素的特殊情况。

    my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
    splice @dwarfs, 3, 0, '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, 3, 0, @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, 2, 4, @others;
    print "@dwarfs
    ";
     
    # 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, 3, 2, @others;
    print "@who
    ";
     
    # Sleepy Sneezy

         在 SCALAR 情境,返回最后一个移除的值,如果没有值被移除,则返回 undef。

    my @others = qw(SnowWhite Humbert);
    my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
    my $who = splice @dwarfs, 3, 2, @others;
    print "$who
    ";
     
    # Sneezy
    • 参数为负值?

          偏移值(OFFSET)和长度(LENGTH)值都可以为负数,表示从数组的末尾算起。

    my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
    
    #偏移为3,即从第四个算起,-1 表示直到整个数组的倒数第一个。 
    my @who = splice @dwarfs, 3, -1;
    print "@who";
     
    # Sleepy Sneezy Dopey
    my @dwarfs = qw(Doc Grumpy Happy Sleepy Sneezy Dopey Bashful);
    
    #从倒数第三个开始,向右移除的第一个元素。 
    my @who = splice @dwarfs, -3, 1;
    print "@who";
     
    # Sneezy
  • 相关阅读:
    SqlServer禁用启用触发器、外键约束
    解决Windows Server2008R2中导入Excel不能使用Jet 4.0
    C#读写配置文件
    C#后台如何获取客户端访问系统型号
    Flex在Win10,Chrome浏览器上汉字乱码的问题
    flex lineChart 显示所有的数据节点
    HTTP状态码大全
    zabbix使用sendEmail发送邮件报警
    zabbix安装
    Samba服务器搭建配置
  • 原文地址:https://www.cnblogs.com/tjxwg/p/3309379.html
Copyright © 2011-2022 走看看