【发布时间】:2013-02-21 12:44:49
【问题描述】:
我常用[1, 2, 3].include? foo 成语。这本身并没有什么问题,但是为了便于阅读,能够写foo.is_in? [1, 2, 3] 会很好。核心或标准库是否有方法可以做到这一点?
【问题讨论】:
标签: ruby
我常用[1, 2, 3].include? foo 成语。这本身并没有什么问题,但是为了便于阅读,能够写foo.is_in? [1, 2, 3] 会很好。核心或标准库是否有方法可以做到这一点?
【问题讨论】:
标签: ruby
不,标准中没有这种方法。自行实现:
class Object
def is_in? a
return a.include?(self)
end
end
请注意,在上面的代码中,我从不检查 a 的类型,因此如果未为 a 定义 include?,您将收到错误。
【讨论】:
不完全是你想要的方式,但你可以重写这个
if [1, 2, 3].include? foo
do_this
else
do_that
end
到这里:
case foo; when 1, 2, 3
do_this
else
do_that
end
【讨论】: