有一个数组 a = %w(a b c d e)
,想要通过索引获取第二个和最后一个值。
我可以通过 a[1], a[-1]
获取值,但是需要两次写入 a
。
有没有一种像 a.at(1, -1)
这样的方法来获取数组?
可以实现。使用Array#values_at方法。
返回一个包含self中与给定选择器相应元素的数组。选择器可以是整数索引或范围。
a = %w{ a b c d e f }
a.values_at(1, 3, 5) # => ["b", "d", "f"]
a.values_at(1, 3, 5, 7) # => ["b", "d", "f", nil]
这里是来自您的示例:
2.1.0 :001 > a = %w(a b c d e)
=> ["a", "b", "c", "d", "e"]
2.1.0 :002 > a.values_at(1,-1)
=> ["b", "e"]
2.1.0 :003 >