在控制台中:
@user.user_type = "hello"
@user.user_type == "hello"
true
@user.user_type == ("hello" || "goodbye")
false
如何编写最后一个语句,以便检查两个字符串之一中是否包含@user.user_type
?
答案 0 :(得分:8)
["hello", "goodbye"].include? @user.user_type
答案 1 :(得分:7)
Enumerable#include?
是惯用的简单方法,但作为旁注,让我向您展示一个非常简单的扩展(我想)会取悦Python粉丝:
class Object
def in?(enumerable)
enumerable.include?(self)
end
end
2.in? [1, 2, 3] # true
"bye".in? ["hello", "world"] # false
有时候(大多数情况下,实际上)在语义上更适合询问一个对象是否在一个集合中,而不是相反。现在你的代码看起来了:
@user.user_type.in? ["hello", "goodbye"]
顺便说一句,我想你要写的是:
@user.user_type == "hello" || @user.user_type == "goodbye"
但是我们程序员本质上是懒惰的,所以最好使用Enumerable#include?
和朋友。