在 Ruby 中使用三元运算符进行布尔检查
boolean check with ternary operator in Ruby
有这样的代码
def f(string)
if string.start_with? 'a'
return true
else
return false
end
end
试图写 string.start_with? 'a' ? 'true' : 'false'
给我警告
warning: string literal in condition
并且没有按预期工作。
这不是关于给定警告的问题,而是关于 Ruby 中三元运算符的正确语法的问题
题:
是否可以使用三元运算符重写上面的代码?
为什么不只是:
def f(string)
string.start_with? 'a'
end
在你的例子中 ruby 按下一个顺序执行代码:
string.start_with? ('a' ? true : false)
# expected
string.start_with?('a') ? 'true' : 'false'
有这样的代码
def f(string)
if string.start_with? 'a'
return true
else
return false
end
end
试图写 string.start_with? 'a' ? 'true' : 'false'
给我警告
warning: string literal in condition
并且没有按预期工作。
这不是关于给定警告的问题,而是关于 Ruby 中三元运算符的正确语法的问题
题:
是否可以使用三元运算符重写上面的代码?
为什么不只是:
def f(string)
string.start_with? 'a'
end
在你的例子中 ruby 按下一个顺序执行代码:
string.start_with? ('a' ? true : false)
# expected
string.start_with?('a') ? 'true' : 'false'