考虑Julia 中的三元运算符
julia> x = 1 ; y = 2
julia> println(x < y ? "less than" : "not less than")
less than
问题:有没有办法省略语句的:
部分?相当于的东西
if condition
# dosomething
end
但没有写下如果不满足条件,就不应该采取任何行动。
NB:我研究了答案,但没有结果,即使是在相关问题中(1,2(
只需执行:
condition && do_something
例如:
2 < 3 && println("hello!")
说明:
&&
是Julia中的一个短循环算子。因此,只有在需要对第二个值进行评估时,才会对其进行评估。因此,当第一condition
评估为false
时,不需要评估第二部分。
最后,请注意,您也可以在作业中使用这个:
julia> x = 2 > 3 && 7
false
julia> x = 2 < 3 && 7
7
然而,这会使x
类型不稳定,因此您可能希望将赋值的右侧包裹在Int
(如x = Int(2 > 3 && 7)
(周围,而您的x
将始终是Int
。
&&
通常用于此,因为它很短,但你必须知道阅读它的技巧。我有时发现只使用常规的旧if语句更可读。在Julia中,如果你想节省空间,它不需要跨越多条线。
julia> x = 1; y = 2;
julia> if (x < y) println("less than") end
less than
julia> if (x > y) println("greater than") else println("not greater than") end
not greater than
注意,在这种情况下,条件周围不需要括号;我只是为了清楚起见才加上它们。另外,请注意,为了清晰起见,我将println
移到了字符串旁边,但如果您愿意,可以将整个if
语句放在println
中,就像您在问题中所做的那样。