Ruby 三元 - 警告 : string literal in condition

标签 ruby ternary-operator

此代码按预期工作:

if phrase.last.eql? "?" ? true : false
  true
else 
  false
end

但是这段代码使用了 Ruby 三元运算符:

phrase.last.eql? "?" ? true : false

出现以下错误:

warning: string literal in condition

我是否需要以某种方式转义 "?"

最佳答案

没有括号,ruby 将其解释为

phrase.last.eql?( "?" ? true : false )

它解释了消息“警告:条件中的字符串文字”。

要解决此问题,请在参数上使用括号:

phrase.last.eql?("?") ? true : false

当然,在这种情况下使用三元运算符是多余的,因为这与简单地相同

phrase.last.eql?("?")

关于Ruby 三元 - 警告 : string literal in condition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21466163/

相关文章:

ruby - 我如何使用 ruby​​ 忽略 csv 文件中的换行符但保留漂亮的源文件?

javascript - Angular ngClass 多个三元运算符条件

c# - 为什么 C# 三元运算符需要强制转换,而等效的 if() 语句不需要?

java - 语法问题 : Ternary and loop inside return statement

Ruby:在 Ubuntu 上安装 rmagick

ruby-on-rails - 如果用户将答案留空,如何将变量设置为零?

ruby-on-rails - 如何在延迟作业队列中指定一名工作人员

ruby-on-rails - Cloudinary 上传有效但无法检索图像

c# - 我可以使用三元运算符来设置泛型方法参数吗?

Java 8 : Weird results combining instanceof and ternary operator