我有一组元素,我想从中删除前几个元素.是否有一个更短的方式(所以一个操作而不是两个)这样做:
require 'set'
s = Set[1, 2, 3, 4] # => #<Set: {1, 2, 3, 4}>
first_two = s.take(2) # => [1, 2]
s.subtract(first_two) # => #<Set: {3, 4}>
Run Code Online (Sandbox Code Playgroud)
(所以基本上我想知道我是否忽略了shift套装)
您可以向Set类添加一个新方法take!(或者remove!任何名称似乎合适):
class Set
def take!(args)
taken = self.take(args)
self.subtract(taken)
return taken
end
end
a = Set[1, 2, 3, 4] # <Set: {1, 2, 3, 4}>
a.take!(2) # <Set: {1, 2}>
a # <Set: {3, 4}>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3006 次 |
| 最近记录: |