zoukankan      html  css  js  c++  java
  • Ruby-Array数组

    1、创建数组

    a=Array.new(6,obj=nil)  #=> [nil, nil, nil, nil, nil, nil] 设置默认值
    a=Array.new(6)           #=> [nil, nil, nil, nil, nil, nil] 默认值为nil
    a=Array.new(6,obj=1){|obj| obj+1}  #=> [1, 2, 3, 4, 5, 6] 默认值进行块里面的迭代
    a=%w{1 2 3 4 5 6}     #=> [1, 2, 3, 4, 5, 6]
    a=[1, 2, 3, 4, 5, 6]      #=> [1, 2, 3, 4, 5, 6]

    2、数组操作

    require 'iconv'

    methods=[
      ["a","数组"],
      ['a.length',"长度"],
      ['a[-1]','倒数第一个'],
      ['a[10]','超出数组的长度下标都表示nil'],
      ['a[2,3]','表示下标从2开始的连续3个数组段'],
      ['a[1..3]','表示下标从1到下标3的数组段'],
      ['a[1..3]','表示下标从1到下标2的数组段,不包含最后一个数'],
      ['a.delete_at(0)','把第一个元素给删除了'],
      ['a.insert(0, 1)','把1插入到数组开始处'],
      ['a.slice!(1, 2)','(slice)表示获取下标1开始的2个元素不删除,(slice!)获取完后删除元素'],
      ['a<<7','添加到数组末尾 同 a.push(7)'],
      ['a.pop(2)','删除末尾2个元素  同 a.slice!(-1,2)'],
      ['a.shift(2)','删除前面两个元素 同 a.slice!(0,2)'],
      ['a.unshift(1,2)','前面插入两个元素 同 a.insert(0, 1,2)'],
      ['a=[0]+a','[(+ <<,并集包含重复)(|,并集不包含重复)] [&,交集] [-,差集]'],
      ]
    methods.each { |method| puts "#{method[0]} => #{eval(method[0])} # #{Iconv.conv("GB18030","UTF-8",method[1]) }" }

    为了达到输出这种格式  “a => 123456 # 数组”而又不用每个去格式化,所有可以利用ruby的 eval动态执行代码,由于有中文所以用到了

    Iconv.conv 方法转码。

    输出如下

    a => 123456 # 数组
    a.length => 6 # 长度
    a[-1] => 6 # 倒数第一个
    a[10] =>  # 超出数组的长度下标都表示nil
    a[2,3] => 345 # 表示下标从2开始的连续3个数组段
    a[1..3] => 234 # 表示下标从1到下标3的数组段
    a[1..3] => 234 # 表示下标从1到下标2的数组段,不包含最后一个数
    a.delete_at(0) => 1 # 把第一个元素给删除了
    a.insert(0, 1) => 123456 # 把1插入到数组开始处
    a.slice!(1, 2) => 23 # (slice)表示获取下标1开始的2个元素不删除,(slice!)获取完后删除元素
    a<<7 => 14567 # 添加到数组末尾 同 a.push(7)
    a.pop(2) => 67 # 删除末尾2个元素  同 a.slice!(-1,2)
    a.shift(2) => 14 # 删除前面两个元素 同 a.slice!(0,2)
    a.unshift(1,2) => 125 # 前面插入两个元素 同 a.insert(0, 1,2)
    a=[0]+a => 0125 # [(+ <<,并集包含重复)(|,并集不包含重复)] [&,交集] [-,差集]

  • 相关阅读:
    make[1]: *** [/workopenwrt/trunk/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/stamp/.tools_install_nnnnn] Error 2 make[1]: Leaving directory `/work/openwrt/trunk' make: *** [world]
    安卓端与开发板通信
    openwrt串口的使用
    .OpenWrt驱动程序Makefile的分析概述 、驱动程序代码参考、以及测试程序代码参考
    openwrt系统之字符设备驱动软件包加载、测试程序加载
    cc2530串口通信流程
    cc2530操作任务系统初始化分析
    总结OpenWrt系统基本操作方法
    Zigbee协议栈OSAL层API函数【转载】
    cc2530启动流程---广播发送数据
  • 原文地址:https://www.cnblogs.com/yangleiWPF/p/4451469.html
Copyright © 2011-2022 走看看