Boolean: Difference between revisions

From Legacy Roblox Wiki
Jump to navigationJump to search
>NXTBoy
Flipped redirect
m Text replacement - "</SyntaxHighlight>" to "</syntaxhighlight>"
 
(85 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{CatUp|Data Types}}
{{Map|Scripting|Data Types}}
A '''Boolean''', or '''Bool''' value is a very simple type of data. It can be either '''true''' or '''false'''. That's it. Either yes or no.


In Lua, everything that has a value is treated as '''true''' when converted to a boolean, unless it is '''nil''' or '''false'''.
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.
<!--a bit too repetitive
{{EmphasisBox|
{{EmphasisBox|
One easy way to think of Boolean values is as a light switch. A switch has two positions, on and off. So when you flip the switch, you change it from one to the other.
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.
}}
-->
== Using Booleans ==
Booleans are most commonly used with [[Conditional_statements|conditional statements]].
<syntaxhighlight lang="lua">
MyBool = true


The same idea works with bools, and you may also hear people say things like "flip the switch to true", or something similar. This is because a lot of people think of bools as switches.
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
</syntaxhighlight>
 
==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
}}
}}


Booleans are really easy to use. Like so:
If you wanted it to print something other than true or false, you will have to use a [[Conditional_statements|conditional statements]]
<pre>
 
MyBool = true
<syntaxhighlight lang="lua">
local enabled = false


if MyBool then
if enabled then
     --If "MyBool" is true, this code is run.
     print("Enabled")
else
else
     --If "MyBool" is false, this code is run.
     print("Disabled")
end
end
</pre>
</syntaxhighlight>
 
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==
 
===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===
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(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
</syntaxhighlight>
 
{{code and output
|code=
print(true and nil)
print(false and 5)
print({} and "hello")
|output=
nil
false
hello
}}
 
===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.


== See Also ==
<syntaxhighlight lang="lua">
print(true or true) -- true
print(true or false) -- true
print(false or true) -- true
print(false or false) -- false


[[RBX.lua.BoolValue (Object)]]
print(4 or 5)         --> 4
print(false or 5)      --> 5
</syntaxhighlight>


[http://www.lua.org/pil/2.2.html Programming in Lua 2.2: Booleans]
== See also ==


[http://lua-users.org/wiki/LuaTypesTutorial Lua Types Tutorial]
* [[RBX.lua.BoolValue (Object)]]


[[Not operator]]
* [http://www.lua.org/pil/2.2.html Programming in Lua 2.2: Booleans]


[[And operator]]
* [http://lua-users.org/wiki/LuaTypesTutorial Lua Types Tutorial]


[[Or operator]]
* [[Or operator]]


[[Category:Data Types]]
[[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"

print(tostring(true))
print(tostring(false))

true

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


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:

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
print(true and nil)
print(false and 5)
print({} and "hello")

nil false

hello

Or

Main article: or operator

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

See also