Python有着非常优雅的语法来检查针对多个模式的值。红宝石等价于[一,二,三]中的foo?
2 in [1,2,4] #=> True
6 in [1,2,4] #=> False
秩序的Ruby版本,只是感觉不对:
[1,2,4].include?(2)
我明白include?
使许多更有意义OO比2.included_in?([1,2,4])
,我还是不喜欢它。 Ruby甚至有in
关键字,但它似乎只用于构造for i in [1,2,4]
,而不是用于成员测试。
另一种方法是这样的:
(case 2 when 1,2,4 then true end)
相当冗长,但允许模式测试:
(case file_name when "README", /\.txt\z/ then true end)
仍然不是很可读。
我错过了一些真正漂亮的方式偶然吗?
[1,2,4] .INCLUDE(2? )对我来说似乎完全是英语(并且适合我)......但这不是每个人都喜欢英语的问题。你呢? – RubyDubee 2010-07-30 07:42:20
你应该可以很容易地实现你自己的'2.in [1,2,4]'。 :) – deceze 2010-07-30 07:43:54