mic*_*imo 0 ruby boolean ternary-operator
有这样的代码
def f(string)
if string.start_with? 'a'
return true
else
return false
end
end
Run Code Online (Sandbox Code Playgroud)
试着写给string.start_with? 'a' ? 'true' : 'false'
我警告
warning: string literal in condition
,并没有按预期工作.这不是关于给定警告的问题,而是关于Ruby中三元运算符的正确语法问题:是否可以使用三元运算符重写上面的代码?
小智 5
为什么不呢:
def f(string)
string.start_with? 'a'
end
Run Code Online (Sandbox Code Playgroud)
在您的情况下,ruby按下一个顺序执行代码:
string.start_with? ('a' ? true : false)
# expected
string.start_with?('a') ? 'true' : 'false'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
512 次 |
最近记录: |