zoukankan      html  css  js  c++  java
  • perlsplice

    函数splice的用法

    格式
    splice(@array,offset,length,list)      #在数组@array的offset的位置插入list,同时删除从   offset开始长度为length个元素 。list上下文返回操作 后的数组,scalar上下文返回操作后的数组最后一个元 素。
    1、缺省list,即splice(@array,offset,length) #删除数组@array从offset开始长度为length个元素
    2、缺省list和length,即splice(@array,offset) #删除数组@array从offstage开始到最后
    3、缺省list、length和offset,即splice(@array) #删除数组@array所有元素
     
    说明:(1)若length为负数,则删除的数组@array中的元素为:从offset开始,到从后往前数length个元素。如下例:
        my @rocks = (1..20);
        my @tmp = qw(a b c);
        print "@rocks\n";
        splice(@rocks,2,-3,@tmp);
         print "@rocks\n";
    运行结果为1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
              1 2 a b c 18 19 20
          (2)若offset为负数,则以数组@array的尾部元素为起始点,同样删除offset后的length个元素。如下例:
      my @rocks = (1..20);
        my @tmp = qw(a b c);
        print "@rocks\n";
      splice(@rocks,-7,3,@tmp);
        print "@rocks\n";
    运行结果为1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
      1 2 3 4 5 6 7 8 9 10 11 12 13 a b c 17 18 19 20
         (3)若offset越界,perl会提示警告,但会在尾部插入list。如下例:
       my @rocks = (1..20);
       my @tmp = qw(a b c);
      print "@rocks\n";
       splice(@rocks,22,-3,@tmp);
     print "@rocks\n";
    运行结果为splice() offset past end of array at C:\Users\tang\Documentstest.pl line 8.
       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 a b c
    原文见:http://blog.sina.com.cn/s/blog_88a2ce2f0100vm2j.html
  • 相关阅读:
    微服务定义及.Net Core中用的技术
    IPad分屏,当电脑第二显示屏
    .net Core1.0 邮件发送
    AutoMapper总结
    02-C#(基础)基本的定义和说明
    01-.Net编程机制
    C#基础篇--静态成员、抽象成员、接口
    C#基础篇--面向对象(类与对象)
    期末总结
    改动后的封装
  • 原文地址:https://www.cnblogs.com/yangyongzhi/p/2687281.html
Copyright © 2011-2022 走看看