ruby - 通过 Ruby 中字符串中存在的字符来定义实例变量

标签 ruby

使用 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 将为 truefalse,具体取决于 @tweet 是否包含子字符串@[用户名]

注意:此方法仅将实例变量设置为 bool 值这一事实听起来有点可疑。如果我必须编写此代码,我可能会定义一个方法 valid_reply? 来检查 @tweet 是否是有效回复:

def valid_reply?
  @tweet.include?("@#{@username}")
end

您还可以在这里看到表达式替换的使用(尽管在这种情况下看起来很奇怪)。

关于ruby - 通过 Ruby 中字符串中存在的字符来定义实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9252305/

相关文章:

ruby - __callee__ 和 __method__ 之间的区别

ruby - 获取 Ruby 解释器版本的惯用方法是什么?

ruby :关键字 "in"是什么意思

用于 Logstash 的 Java 过滤器

ruby-on-rails - 未定义方法 `each' 为 nil :NilClass - Rails

ruby-on-rails - 将集合与相关对象分组

ruby-on-rails - 表单中的 Rails 选择标记不会填充编辑 View 中的值

mysql - Rails 查询变为空,但如果在 sql 控制台中搜索,相同的查询会检索记录

ruby-on-rails - 为什么我的 Rails 服务器不能在 cloud9 中工作

ruby - Git Bash 和 ruby