Boolean: Difference between revisions
>JulienDethurens No edit summary |
m Text replacement - "</SyntaxHighlight>" to "</syntaxhighlight>" |
||
(46 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{Map| | {{Map|Scripting|Data Types}} | ||
A '''Boolean''', or '''Bool''' value, is a very simple data type. It is either a '''true''' or '''false''' value. | |||
A '''Boolean''', or '''Bool''' value is a very simple type | |||
In Lua, | In Lua, when something is converted to a boolean, if the value is false or nil then it will be false, otherwise it is true. | ||
<!--a bit too repetitive | |||
{{EmphasisBox| | {{EmphasisBox| | ||
One easy way to think of Boolean values is like a light switch. A switch has two positions, on and off. Only a Boolean value only includes two values, true and false. | One easy way to think of Boolean values is like a light switch. A switch has two positions, on and off. Only a Boolean value only includes two values, true and false. | ||
}} | }} | ||
--> | |||
Booleans are | == Using Booleans == | ||
< | Booleans are most commonly used with [[Conditional_statements|conditional statements]]. | ||
<syntaxhighlight lang="lua"> | |||
MyBool = true | MyBool = true | ||
Line 19: | Line 20: | ||
--If "MyBool"'s value is false, this code is run. | --If "MyBool"'s value is false, this code is run. | ||
end | end | ||
</ | </syntaxhighlight> | ||
==Converting booleans into strings== | ==Converting booleans into strings== | ||
When converted to a string, booleans will return {{`|"true"}} or {{`|"false"}} | |||
{{code and output|code= | |||
print(tostring(true)) | |||
print(tostring(false)) | |||
|output= | |||
true | |||
false | |||
}} | |||
If you wanted it to print something other than true or false, you will have to use a [[Conditional_statements|conditional statements]] | |||
< | <syntaxhighlight lang="lua"> | ||
local enabled = false | local enabled = false | ||
Line 34: | Line 42: | ||
print("Disabled") | print("Disabled") | ||
end | end | ||
</ | </syntaxhighlight> | ||
However, there is a cleaner way of doing this. You can use the following idiom: | However, there is a cleaner way of doing this. You can use the following idiom: | ||
<syntaxhighlight lang="lua">print(enabled and "Enabled" or "Disabled")</syntaxhighlight> | |||
and get the same results. | |||
==Operators== | ==Operators== | ||
===Not=== | ===Not=== | ||
The '''not''' operator returns true if the argument is false or {{nil}}, otherwise it will return false. The table below shows some example results | |||
{| class="wikitable" width="100%" | |||
! scope="row"| {{`|x}} | |||
| true || false || nil || "text" || 0 || 1 | |||
|- | |||
! scope="row"| {{`|not x}} | |||
| false || true || true || false || false || false | |||
|} | |||
{{Example| | |||
One thing that the not operator is useful for is toggling something. To make a button toggle the visibility of a GUI, you can do: | |||
<syntaxhighlight lang="lua"> | |||
button.MouseButton1Click:connect(function() | |||
frame.Visible = not frame.Visible | |||
end) | |||
</ | </syntaxhighlight> | ||
}} | |||
===And=== | ===And=== | ||
The '''and''' operator returns the first argument if it is false or [[nil]], otherwise it will return the second argument. | |||
<syntaxhighlight lang="lua"> | |||
< | |||
print(4 and 5) --> 5 | print(4 and 5) --> 5 | ||
print(nil and 13) --> nil | print(nil and 13) --> nil | ||
Line 68: | Line 86: | ||
print(false and true) -- false | print(false and true) -- false | ||
print(false and false) -- false | print(false and false) -- false | ||
</code | </syntaxhighlight> | ||
{{code and output | |||
|code= | |||
print(true and nil) | |||
print(false and 5) | |||
print({} and "hello") | |||
|output= | |||
nil | |||
false | |||
hello | |||
}} | |||
===Or=== | ===Or=== | ||
{{main|or operator}} | |||
The '''or''' operator returns the first argument if it is neither false nor [[nil]], otherwise it will return the second argument. | |||
<syntaxhighlight lang="lua"> | |||
< | |||
print(true or true) -- true | print(true or true) -- true | ||
print(true or false) -- true | print(true or false) -- true | ||
Line 82: | Line 111: | ||
print(4 or 5) --> 4 | print(4 or 5) --> 4 | ||
print(false or 5) --> 5 | print(false or 5) --> 5 | ||
</ | </syntaxhighlight> | ||
== See | == See also == | ||
* [[RBX.lua.BoolValue (Object)]] | * [[RBX.lua.BoolValue (Object)]] | ||
Line 91: | Line 120: | ||
* [http://lua-users.org/wiki/LuaTypesTutorial Lua Types Tutorial] | * [http://lua-users.org/wiki/LuaTypesTutorial Lua Types Tutorial] | ||
* [[Or operator]] | * [[Or operator]] | ||
[[Category:Data | [[Category:Data types]] |
Latest revision as of 06:17, 27 April 2023
A Boolean, or Bool value, is a very simple data type. It is either a true or false value.
In Lua, when something is converted to a boolean, if the value is false or nil then it will be false, otherwise it is true.
Using Booleans
Booleans are most commonly used with conditional statements.
MyBool = true
if MyBool then
--If "MyBool"'s value is true, this code is run.
else
--If "MyBool"'s value is false, this code is run.
end
Converting booleans into strings
When converted to a string, booleans will return "true" or "false"
If you wanted it to print something other than true or false, you will have to use a conditional statements
local enabled = false
if enabled then
print("Enabled")
else
print("Disabled")
end
However, there is a cleaner way of doing this. You can use the following idiom:
print(enabled and "Enabled" or "Disabled")
and get the same results.
Operators
Not
The not operator returns true if the argument is false or nil, otherwise it will return false. The table below shows some example results
x | true | false | nil | "text" | 0 | 1 |
---|---|---|---|---|---|---|
not x | false | true | true | false | false | false |
One thing that the not operator is useful for is toggling something. To make a button toggle the visibility of a GUI, you can do:
button.MouseButton1Click:connect(function()
frame.Visible = not frame.Visible
end)
And
The and operator returns the first argument if it is false or nil, otherwise it will return the second argument.
print(4 and 5) --> 5
print(nil and 13) --> nil
print(false and 13) --> false
print(true and true) -- true
print(true and false) -- false
print(false and true) -- false
print(false and false) -- false
Or
The or operator returns the first argument if it is neither false nor nil, otherwise it will return the second argument.
print(true or true) -- true
print(true or false) -- true
print(false or true) -- true
print(false or false) -- false
print(4 or 5) --> 4
print(false or 5) --> 5