Ruby三元运算符中,如何避免条件字符串文字的警告提示?

更新于
2026-10-03 21:11:47
0阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计276个文字,预计阅读时间需要2分钟。

此代码段使用Ruby的三元运算符,但存在错误。以下是修改后的代码:

rubyif phrase.last.eql? ? trueelse falseend

错误提示:warning: string literal in condition,表示在条件中使用字符串字面量是不推荐的。为了避免这个警告,可以将字符串常量定义为变量:

rubyquestion_mark=?if phrase.last.eql? question_mark trueelse falseend

此代码按预期工作:

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?("?")

本文共计276个文字,预计阅读时间需要2分钟。

此代码段使用Ruby的三元运算符,但存在错误。以下是修改后的代码:

rubyif phrase.last.eql? ? trueelse falseend

错误提示:warning: string literal in condition,表示在条件中使用字符串字面量是不推荐的。为了避免这个警告,可以将字符串常量定义为变量:

rubyquestion_mark=?if phrase.last.eql? question_mark trueelse falseend

此代码按预期工作:

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?("?")