Difference between revisions of "Ternary Operator"
From GiderosMobile
m (Text replacement - "<source" to "<syntaxhighlight") |
m |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
Luau introduces a form of ternary conditional using if cond then value else alternative syntax. | Luau introduces a form of ternary conditional using if cond then value else alternative syntax. | ||
− | See '''https:// | + | See '''https://luau.org/syntax#if-then-else-expressions'''. |
− | |||
The '''''if-then-else''''' expression must match '''if <expr> then <expr> else <expr>'''. The operator can also contain an arbitrary number of elseif clauses, like '''''if <expr> then <expr> elseif <expr> then <expr> else <expr>'''''. Unlike if statements, else is mandatory. | The '''''if-then-else''''' expression must match '''if <expr> then <expr> else <expr>'''. The operator can also contain an arbitrary number of elseif clauses, like '''''if <expr> then <expr> elseif <expr> then <expr> else <expr>'''''. Unlike if statements, else is mandatory. | ||
Line 21: | Line 20: | ||
newThing = if FFlagUseNewThing then t.whatever() else nil, | newThing = if FFlagUseNewThing then t.whatever() else nil, | ||
}) | }) | ||
− | </ | + | </syntaxhighlight> |
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
Line 32: | Line 31: | ||
local checkanim | local checkanim | ||
checkanim = if ent.animation.anims[ent.animation.currentanim] then ent.animation.currentanim else g_ANIM_DEFAULT | checkanim = if ent.animation.anims[ent.animation.currentanim] then ent.animation.currentanim else g_ANIM_DEFAULT | ||
− | </ | + | </syntaxhighlight> |
=== See also === | === See also === | ||
− | '''https://wiki.gideros.rocks/index.php/ | + | '''https://wiki.gideros.rocks/index.php/Ftf_snippets#TERNARY_OPERATOR_.40hgy29''' |
{{GIDEROS IMPORTANT LINKS}} | {{GIDEROS IMPORTANT LINKS}} |
Latest revision as of 00:11, 17 October 2024
Supported platforms:
Available since: Gideros 2022.5
Description
Luau introduces a form of ternary conditional using if cond then value else alternative syntax.
See https://luau.org/syntax#if-then-else-expressions.
The if-then-else expression must match if <expr> then <expr> else <expr>. The operator can also contain an arbitrary number of elseif clauses, like if <expr> then <expr> elseif <expr> then <expr> else <expr>. Unlike if statements, else is mandatory.
The result of the expression is the then-expression when condition is truthy (not nil or false) and else-expression otherwise. Only one of the two possible resulting expressions is evaluated.
Examples
local x = if FFlagFoo then A else B
MyComponent.validateProps = t.strictInterface({
layoutOrder = t.optional(t.number),
newThing = if FFlagUseNewThing then t.whatever() else nil,
})
-- more trivial example
local x1 = 10
local x2 = 100
local x = if x1>x2 then x1 else x2 -- result x = 100
-- actual project code
local checkanim
checkanim = if ent.animation.anims[ent.animation.currentanim] then ent.animation.currentanim else g_ANIM_DEFAULT
See also
https://wiki.gideros.rocks/index.php/Ftf_snippets#TERNARY_OPERATOR_.40hgy29