v3 · Activity 10 of 12 · truthiness · nil · defaults · 9 min Runs here
In a condition, only false and nil count as falsey. Zero and the empty string are truthy. Luau does not treat zero as automatically false.
value or default returns one of its operands; it is not always a boolean. This shortcut replaces both nil and false, which may be wrong for settings.
soundEnabled(value) should return true when value is missing and otherwise preserve the supplied boolean. Replace the shortcut that loses false. Keep the final return shown in the starter so the checker can call or inspect your result.
Interface: soundEnabled(value) -> boolean; nil input uses true.
| Input | Expected |
|---|---|
Missing preferencenil | true |
Deliberately offfalse | false |
Ontrue | true |
local function volumeOrDefault(volume)
if volume == nil then
return 50
end
return volume
end
return volumeOrDefaultMissing volume becomes 50, but volume 0 stays 0 because zero is not missing.
New syntax: value == nil, value or default
In a condition, only false and nil count as falsey. Zero and the empty string are truthy. Luau does not treat zero as automatically false.
value or default returns one of its operands; it is not always a boolean. This shortcut replaces both nil and false, which may be wrong for settings.
Use value == nil when absence is the specific condition you care about. Preserve false as a deliberate setting.
Select a word or symbol in this authored example. Your editor draft stays unchanged.
soundEnabledvalue
value
soundEnabledThis is a private experiment copy. It does not replace your answer or complete the activity.
These inputs apply when your scratchpad returns the function described by the activity interface.
Your output will appear here.
Replace this code with the starter? Download your draft to keep a copy.
Your output will appear here.
Sign in with RoCreators to save private progress across devices. Community verification is separate.