2016-09-30 28 views
-6

的Python,Java和斯卡拉有三元的运营商。 Julia有什么等价物?朱莉娅是否有三元条件操作符?

+3

你能贴上去的尝试?我认为它和C,C++和Java一样。 (我也认为Scala使用了'if','else')。 – Bathsheba

+2

参见[这里](http://web.mit.edu/julia_v0.3.11/.julia-483dbf5279.amd64_ubuntu1404/share/julia/doc/_build/html/manual/control-flow.html) – Ahmad

+6

HTTP:// stackoverflow.com/documentation/julia-lang/4356/conditionals/15210/ternary-conditional-operator#t=201609301108357883321 – JJJ

回答

4

对于内联使用, b:c存在,正如前面的答案所述。然而,值得注意的是,如果其他终端在朱莉娅的作品就像(如果COND表达式1表达式2)在大多数的Lisp方言既充当了if子句和三元运算符。因此,if-then-else返回执行的表达式的返回值。

这意味着你可以写东西像

function abs(x) 
    if x > 0 
     x 
    else 
     -x 
    end 
end 

,这将返回你想要什么。您不必使用return语句来中断功能块,只需返回if块所返回的值即可。

内联,可以编写

if (x > 0) x else -x end 

这将返回相同的事情作为三元运算表达式(X> 0)? x:-x,但具有避免perl-ish?:符号的好处,并且通常更具可读性。

大多数语言有一个三元运算符分开的if-then-else的,因为如果条款是语句,而在类Lisp语言的他们表情就像一切,有一个返回值。

9

你指到this

a = true 
b = 1 
c = 2 

julia>a ? b : c 
1 

a = false 

julia>a ? b : c 
2