Julia 单线函数中的三元算子

Julia 单线函数中的三元算子,julia,ternary-operator,Julia,Ternary Operator,在Julia中,我可能希望编写一个函数,如果输入小于1,则返回0,如果输入大于或等于1,则返回2。这是一个非常简单的函数,五行if-else结构的冗长程度可能过高。所以我想把它变成一行函数。我能想出的最好办法如下: f(x::Number) = begin (x < 1) && return(0); return(2); end f(x::Number)=开始(xf(1) 2. 朱莉娅>f(0.99) 0 替代解决方案: f(x::Number) = if (x <

在Julia中,我可能希望编写一个函数,如果输入小于
1
,则返回
0
,如果输入大于或等于
1
,则返回
2
。这是一个非常简单的函数,五行
if-else
结构的冗长程度可能过高。所以我想把它变成一行函数。我能想出的最好办法如下:

f(x::Number) = begin (x < 1) && return(0); return(2); end
f(x::Number)=开始(x<1)和返回(0);返回(2);结束

f(x::Number)=开始x<1?(y=0):(y=2);返回(y);结束
有没有更简单的方法来定义这个函数?

julia>f(x::Number)=x<1?0 : 2
julia> f(x::Number) = x < 1 ? 0 : 2
f (generic function with 1 method)

julia> f(0)
0

julia> f(1)
2

julia> f(0.99)
0
f(带1方法的泛型函数) julia>f(0) 0 julia>f(1) 2. 朱莉娅>f(0.99) 0
替代解决方案:

f(x::Number) = if (x < 1) 0 else 2 end
f(x::Number)=如果(x<1)0,则结束
Julia中的if-elseif-else语法将返回执行的表达式的值,这使得类C三元运算符变得多余。与中一样,它的所有功能都包含在一个更可读的替代方案中


回顾您以前的尝试,我认为值得一提的是,与Python不同,您很少需要显式使用return()。通常,您可以返回if-elseif-else块返回的任何内容,就像大多数lisp方言中一样。显式返回就像goto或break,在特殊情况下用来中断控制流的东西。

好吧,那一个真的盯着我看了,不是吗:-)非常感谢
f(x::Number) = if (x < 1) 0 else 2 end