Python中有一个很好的切片方法,例如
my_array[3:]
我知道 Ruby 中也有切片方法,但没有与 Python 完全相同的方法my_array[3:]
(以防不知道数组的大小)。是不是?
Python中有一个很好的切片方法,例如
my_array[3:]
我知道 Ruby 中也有切片方法,但没有与 Python 完全相同的方法my_array[3:]
(以防不知道数组的大小)。是不是?
请在此处查看 ruby 切片方法。正如@Blender 建议的那样,您可以传递一个范围,例如:
my_array[3..-1]
编辑:
array = ["a", "b", "c", "d", "e"]
array[3..-1]
将导致["d", "e"]
asd
的索引为 3 并且e
是最后一个元素。
a = [ "a", "b", "c", "d", "e" ]
a[2] + a[0] + a[1] #=> "cab"
a[6] #=> nil
a[1, 2] #=> [ "b", "c" ]
a[1..3] #=> [ "b", "c", "d" ]
a[4..7] #=> [ "e" ]
a[6..10] #=> nil
a[-3, 3] #=> [ "c", "d", "e" ]
# special cases
a[5] #=> nil
a[5, 1] #=> []
a[5..10] #=> []
class Array
def sub_array(pos, len = -1)
if len == -1
then # the rest of the array starting at pos
len = self.size - pos
end
self.slice(pos, len)
end
end
my_array = %w[a b c d e f]
p my_array.sub_array(3) #=> ["d", "e", "f"]
p my_array.sub_array(5) #=> ["f"]
p my_array.sub_array(9) #=> nil
p my_array.sub_array(3, 2) #=> ["d", "e"]
p my_array.sub_array(3, 9) #=> ["d", "e", "f"]
实际上,这最初是 String 的子字符串方法。