ruby 数组索引

a = [ 3.14159, "pie", 99 ]
a.class        => Array
a.length       => 3
a[0]           => 3.14159     # Index以0开始
a[3]           => nil         # 没有异常,返回nil
a[-1]          => 99          # Index -1 返回最后一个元素 
a[-a.length]   => 3.14159     # 返回第一元素

b = Array.new
b[100] = 1
a = [ 1, 3, 5, 7, 9 ]
a[3, 2]    => [ 7, 9 ]     # 从Index3开始,取2个
a[-3, 2]   => [ 5, 7 ]     # 从倒数第3个开始取2个

两种Ranges,在Pascal是见过其中一种, ..

1..100       表示1到100
1...100      表示1到99, 不包括100
-5..-1       表示-5, -4, -3, -2, -1
三点的Range不包括第二个端点
a[-3..-1]      # 取最后3个元素
a[4..-2]       # 从第4个元素起(从0开始计数),取到倒数第二个
如果Range的第二个端点在第一个前面,返回空数组[], 比如假设a只有5个元素,a[4..-2] => []
(注:碰到一个@vnc_port[6..-1],愣是不知道什么意思!看到这里才知道,是从第四个元素开始,取到倒数第一个也就是最后一个元素)


修改数组

a = [ 1, 3, 5, 7, 9 ]
a[2, 2] = 'cat'         => a = [ 1, 3, 'cat', 9 ]              # 删除左边[2, 2]选定的区域,插入右边的元素
a[2, 0] = 'dog'         => a = [ 1, 3, 'dog', 'cat', 9 ]       # 如果左边选定的区域为空,相当于插入元素
a[1, 1] = [ 9, 8, 7 ]   => a = [ 1, 9, 8, 7, 'dog', 'cat', 9 ] # 右边为数组,逐个插入
a[0..3] = []            => a = [ 'dog', 'cat', 9 ]             # 右边为空,相当于删除
a[5..6] = 99, 98        => a = [ 'dog', 'cat', 9, nil, nil, 99, 98 ]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值