假设我有一个Ruby数组
a = [1, 2, 3, 4]
如果我想要除第一项之外的所有内容,我可以编写a.drop(1)
,这很棒。然而,如果我想要最后一项之外的所有东西,我只能这样想
a[0..-2] # or
a[0...-1]
但这两种方法似乎都不像使用drop
那样干净。我还遗漏了其他内置的方法吗?
发布于 2009-10-22 08:01:27
也许..。
a = t # => [1, 2, 3, 4]
a.first a.size - 1 # => [1, 2, 3]
或
a.take 3
或
a.first 3
或
a.pop
,它将返回最后一个数组,并保留数组之前的所有内容。
或者让计算机为它的晚餐工作:
a.reverse.drop(1).reverse
或
class Array
def clip n=1
take size - n
end
end
a # => [1, 2, 3, 4]
a.clip # => [1, 2, 3]
a = a + a # => [1, 2, 3, 4, 1, 2, 3, 4]
a.clip 2 # => [1, 2, 3, 4, 1, 2]
发布于 2009-10-25 01:31:52
出于好奇,你为什么不喜欢a[0...-1]
呢?
也许是这样的:
class Array
def drop_last
self[0...-1]
end
end
发布于 2013-05-16 04:38:45
另一个很酷的把戏
>> *a, b = [1,2,3]
=> [1, 2, 3]
>> a
=> [1, 2]
>> b
=> 3
https://stackoverflow.com/questions/1604305
复制相似问题