此代码按预期工作: if phrase.last.eql? "?" ? true : false trueelse falseend 但是这段代码使用Ruby三元运算符: phrase.last.eql? "?" ? true : false 给出以下错误: warning: string literal in condition 我需要逃避
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?("?")