2016-09-30 70 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