我有Julia代码,如下所示
if cxp1_v1 < cxp1_v2
d_min = cxp1_v1
d_max = cxp1_v2
else
d_min = cxp1_v2
d_max = cxp1_v1
end
或
if cxp1_v1 < cxp1_v2 d_min, d_max = cxp1_v1, cxp1_v2 else d_min, d_max = cxp1_v2, cxp1_v1 end
是否有一种方法可以在三元操作符中完成相同的操作?我尝试了如下所示
cxp1_v1 < cxp1_v2 ? d_min, d_max = cxp1_v1, cxp1_v2:d_min, d_max = cxp1_v2, cxp1_v1
但是我得到
syntax: colon expected in "?" expression
Stacktrace:
[1] top-level scope
@ In[422]:11
[2] eval
@ ./boot.jl:373 [inlined]
[3] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
@ Base ./loading.jl:1196
cxp1_v1 < cxp1_v2 ? (d_min, d_max) = (cxp1_v1, cxp1_v2) : (d_min, d_max) = (cxp1_v2, cxp1_v1)
但是我可能会这样写:
d_min, d_max = cxp1_v1 < cxp1_v2 ? (cxp1_v1, cxp1_v2) : (cxp1_v2, cxp1_v1)
,因为它看起来更容易读,甚至:
d_min, d_max = minmax(cxp1_v1, cxp1_v2)