어쨌든 Lua에서 인라인 조건을 사용할 수 있습니까?
예 :
print("blah: " .. (a == true ? "blah" : "nahblah"))
답변:
확실한:
print("blah: " .. (a and "blah" or "nahblah"))
(cond and false-value or x)
을 초래할 것이라는 점을 x
모든 경우입니다.
a and false or true
똑같은 대답을주지 않는 경우 정확합니다 not a
. 이 관용구는 일반적으로 a
true 인 경우 원하는 값 이 false
또는 일 수없는 경우에 사용 nil
됩니다.
a and assert(b) or c
.
이 기능이 a and t or f
작동하지 않으면 언제든지 함수를 만들 수 있습니다.
function ternary ( cond , T , F )
if cond then return T else return F end
end
print("blah: " .. ternary(a == true ,"blah" ,"nahblah"))
물론, T와 F가 항상 평가된다는 단점이 있습니다.
function ternary ( cond , T , F , ...)
if cond then return T(...) else return F(...) end
end
print("blah: " .. ternary(a == true ,function() return "blah" end ,function() return "nahblah" end))
t
는 nil
.