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
  • 相关阅读:
    【shell脚本】系统硬件信息数据库收集(普通版和导入Excel版)auto_system_collect.sh
    【linux命令】sz、rz命令安装及使用
    【shell脚本】全备份和增量备份Linux系统脚本auto_bak_system.sh
    【shell脚本】截取恶意端口ip,禁止远程登录22端口auto_deny_ip.sh
    【shell脚本】自动生成网卡文件主要内容auto_network_scripts.sh
    java 多个数 组合成不同的组
    linux jdk配置
    ubuntu sh脚本激活conda 虚拟环境
    liunx mysql数据库目录迁移
    liunx 定时任务执行java程序配置流程
  • 原文地址:https://www.cnblogs.com/tjxwg/p/3309379.html
Copyright © 2011-2022 走看看