ssc*_*rus 1 ruby conditional ruby-on-rails
在控制台中:
@user.user_type = "hello"
@user.user_type == "hello"
true
@user.user_type == ("hello" || "goodbye")
false
Run Code Online (Sandbox Code Playgroud)
如何编写最后一个语句,以便检查是否@user.user_type包含在两个字符串之一中?
["hello", "goodbye"].include? @user.user_type
Run Code Online (Sandbox Code Playgroud)
Enumerable#include? 是一种惯用的简单方法,但作为旁注,让我向您展示一个非常简单的扩展(我想)会取悦Python粉丝:
class Object
def in?(enumerable)
enumerable.include?(self)
end
end
2.in? [1, 2, 3] # true
"bye".in? ["hello", "world"] # false
Run Code Online (Sandbox Code Playgroud)
有时候(实际上大部分时间),在语义上更方便地询问对象是否在集合内部而不是相反.现在你的代码看起来像:
@user.user_type.in? ["hello", "goodbye"]
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我想你想写的是:
@user.user_type == "hello" || @user.user_type == "goodbye"
Run Code Online (Sandbox Code Playgroud)
但是我们程序员本质上是懒惰所以更好地使用Enumerable#include?和朋友.