朱莉娅有三元条件算子吗?

Jan*_*cki 1 ternary-operator julia

Python,Java和Scala都有三元运算符.朱莉娅的等价物是什么?

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)


sao*_*lof 8

对于内联使用,一个?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的语言中,它们就像其他所有表达式一样,并且具有返回值.