我想根据索引从数组中提取两个值。
不幸的是,当最后一个索引为零时,这会失败,而我没有说明原因。
my_array = ["a", "b", "c", "d", "e", "f", "g"]
my_array[1,2]
# => ["b", "c"]
my_array[0,2]
# => ["a", "b"]
my_array[2,0]
# => []
为什么最后一次分配无法拉出元素2和0?
我怀疑我的操作实际上并没有按照我的想法行事,因为添加第三个索引会导致整个事情失败:
my_array[1,2,3]
# => ArgumentError: wrong number of arguments (3 for 1..2)
我实际上在使用数组[var1,var2]语法做什么,我该怎么办?
答案 0 :(得分:4)
my_array[start,length]
[docs]是 slice 语法:
返回从start开始并继续使用length元素的子数组
这是my_array.slice(start, length);
你应该这样做:
my_array.values_at(2, 0)
=> ["c", "a"]