ise*_*arn 21
你在谈论这个吗?
a = true
b = 1
c = 2
julia>a ? b : c
1
a = false
julia>a ? b : c
2
Run Code Online (Sandbox Code Playgroud)
对于内联使用,一个?b:c存在,如前面的答案所述.然而,值得注意的是,如果其他终端在朱莉娅的作品就像(如果COND表达式1表达式2)在大多数的Lisp方言既充当了if子句和三元运算符.因此,if-then-else返回执行的表达式的返回值.
这意味着你可以写出类似的东西
function abs(x)
if x > 0
x
else
-x
end
end
Run Code Online (Sandbox Code Playgroud)
这将返回你想要的.您不必使用return语句来破坏功能块,只需返回if-block返回的值即可.
内联,你可以写
if (x > 0) x else -x end
Run Code Online (Sandbox Code Playgroud)
它将返回与三元运算符表达式(x> 0)相同的东西?x:-x,但有避免perl-ish?:符号的好处,通常更具可读性.
大多数语言都有一个与if-then-else分开的三元运算符,因为if子句是语句,而在类似lisp的语言中,它们就像其他所有表达式一样,并且具有返回值.