if condition then
s = "on"
else
s = "off"
end
s = condition ? "on" : "off"
Выход прост — к нам придут на помощь логические операторы or и and. В Lua для них выполняется следующее:
- оператор and возвращает первое ложное значение среди сових операндов; если оба операнда истинны, возвращается последний из них
- оператор or возвращает первое истинное значение среди своих операндов; если оба операнда ложны, возвращается последний из них
s = condition and "on" or "off"
Если же уcловие condition ложно, то оператор and возвращает ложь, и оператор or, получив ложь в качестве первого операнда, возвращает значение второго ("off").
Таким образом, в результате махинаций с логическими операторами мы получили тернарный оператор в Lua!