gpt4 book ai didi

Ruby if oneliner inside if 语句产生错误

转载 作者:数据小太阳 更新时间:2023-10-29 08:21:38 26 4
gpt4 key购买 nike

这是一个意想不到的发现。一些我以前从未遇到过的非常基本的 Ruby 问题:

a = "a"

if a
test = "yes" if a == "a" else "no"
else
test = "no"
end

运行这个会产生错误:

syntax error, unexpected kELSE, expecting kEND

看起来嵌套的 oneliner 溢出到封闭的 if 语句中。这个的通用解决方案是什么?不在分解的 if 语句中使用 oneliner? (它在展开封闭的条件时起作用,因为它由 end 关键字终止。

顺便说一句,这是一个最小化的人为示例,因此无需解释其愚蠢或质疑我为什么要这样做。我正在寻找有关如何防止 ruby​​ oneliner if 语句溢出到封闭条件范围的一般解释。

最佳答案

如果你想把 if else 放在一行中,使用 then 像这样:

if a then b else c end

而且,如果你愿意,你可以使用 ; 而不是 then,就像这样:

if a ; b else c end

此外,有时您可以使用它代替 ?::

a && b || c

关于Ruby if oneliner inside if 语句产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3720393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com