使用 Ruby,如何通过字符串中存在的字符来定义实例变量?
我一直在尝试使用 includes
但这显然不是内置方法。
def reply
@reply = @tweet.includes("@")
end
此外,如何确保“@”指的是实际用户,而不仅仅是 float 在推文中或作为无效用户名的前缀?如果 includes
有效,我会尝试:
def valid_reply
@valid_reply = @tweet.includes("@" + @username)
end
最佳答案
你几乎猜对了,你正在寻找的方法叫做 include?
:
def valid_reply
@valid_reply = @tweet.include?("@" + @username)
end
此后,@valid_reply
将为 true
或 false
,具体取决于 @tweet
是否包含子字符串@[用户名]
。
注意:此方法仅将实例变量设置为 bool 值这一事实听起来有点可疑。如果我必须编写此代码,我可能会定义一个方法 valid_reply?
来检查 @tweet 是否是有效回复:
def valid_reply?
@tweet.include?("@#{@username}")
end
您还可以在这里看到表达式替换的使用(尽管在这种情况下看起来很奇怪)。
关于ruby - 通过 Ruby 中字符串中存在的字符来定义实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9252305/