我想测试a
是否等于or2
我能行
a == 1 || a == 2
但这需要重复a
次(对于较长的变量来说,这会很烦人)
我想做a == (1 || 2)
个,但显然不行
我能行 [1, 2].include?(a)
, which is not bad, but strikes me as a bit harder to read
只是想知道如何用惯用的ruby来实现这一点
我想测试a
是否等于or2
我能行
a == 1 || a == 2
但这需要重复a
次(对于较长的变量来说,这会很烦人)
我想做a == (1 || 2)
个,但显然不行
我能行 [1, 2].include?(a)
, which is not bad, but strikes me as a bit harder to read
只是想知道如何用惯用的ruby来实现这一点
第一种方法是惯用Ruby.不幸的是,Ruby没有Python的a in [1,2]
,我认为这会更好.你的[1,2].include? a
是最接近的 Select ,我认为它有点落后于最自然的方式.
当然,如果你经常使用这个,你可以这样做:
class Object
def member_of? container
container.include? self
end
end
然后你可以做a.member_of? [1, 2]
次.