Ruby警告:条件中的字符串字面量

3
在第七行,我收到了“条件中的字符串文字”警告。这个警告是什么意思,我该如何解决它?
   print 'Continue to use calculator?   Y or N'
   userAgree = gets.chomp
   if userAgree == 'Y' or 'y'
        userAgree = true
   else
        userAgree = false
   end

1
user_agree = (gets.chomp.upcase == 'Y') - steenslag
4个回答

25
修改
if userAgree == 'Y' or 'y'
"要"
if userAgree == 'Y' or userAgree == 'y'

或者,依我的看法更为简洁明了:

if userAgree.upcase() == 'Y'

3

您的if条件无效。这个有效。

print 'Continue to use calculator?   Y or N'
userAgree = gets.chomp
if userAgree == 'Y' or userAgree == 'y'
  userAgree = true
else
  userAgree = false
end

1
你可以这样做:
    puts 'Continue to use calculator?   Y or N'
    userAgree = gets.chomp
    userAgree.to_s.upcase!

    def Check (ans)

    if ["Y","N"].include?(ans)
        puts"true"
    else
        puts "false"
    end

end

Check userAgree

-3

为什么不呢?

if userAgree == ('Y' or 'y')

对我来说,这种语法更具表现力。


2
因为这与使用 if userAgree == 'Y' 相同。表达式 'Y' or 'y' 总是会被评估为 'Y' - omninonsense

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接