Boolean: Difference between revisions

From Legacy Roblox Wiki
Jump to navigationJump to search
>NXTBoy
(→‎Not: Trying to delete the stupid operator pages)
m (Text replacement - "</SyntaxHighlight>" to "</syntaxhighlight>")
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Map|Scripting|Data Types}}
{{Map|Scripting|Data Types}}


{{CatUp|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 data type. It is either a '''true''' or '''false''' value.


Line 11: Line 10:
}}
}}
-->
-->
== Using Boolean's ==
== Using Booleans ==
Booleans are most commonly used with [[Conditional_statements|conditional statements]].
Booleans are most commonly used with [[Conditional_statements|conditional statements]].
<code lua>
<syntaxhighlight lang="lua">
MyBool = true
MyBool = true


Line 21: Line 20:
     --If "MyBool"'s value is false, this code is run.
     --If "MyBool"'s value is false, this code is run.
end
end
</code>
</syntaxhighlight>


==Converting booleans into strings==
==Converting booleans into strings==
Line 35: Line 34:
If you wanted it to print something other than true or false, you will have to use a [[Conditional_statements|conditional statements]]
If you wanted it to print something other than true or false, you will have to use a [[Conditional_statements|conditional statements]]


<code lua>
<syntaxhighlight lang="lua">
local enabled = false
local enabled = false


Line 43: Line 42:
     print("Disabled")
     print("Disabled")
end
end
</code>
</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:


<code lua>print(enabled and "Enabled" or "Disabled")</code>
<syntaxhighlight lang="lua">print(enabled and "Enabled" or "Disabled")</syntaxhighlight>


and get the same results.
and get the same results.
Line 54: Line 53:


===Not===
===Not===
The '''not''' operator returns true if the argument is false or [[nil]], otherwise it will return false.
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
|}


<code>
print(not false)      -- true
print(not nil)        -- true
print(not true)      -- false
print(not "A string") -- false
print(not 0)          -- false
print(not 1)          -- false
</code>


{{Example|
{{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:
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:


<code lua>
<syntaxhighlight lang="lua">
button.MouseButton1Click:connect(function()
button.MouseButton1Click:connect(function()
     frame.Visible = not frame.Visible
     frame.Visible = not frame.Visible
end)
end)
</code>
</syntaxhighlight>
}}
}}


===And===
===And===
{{main|and operator}}
The '''and''' operator returns the first argument if it is false or [[nil]], otherwise it will return the second argument.
The '''and''' operator returns the first argument if it is false or [[nil]], otherwise it will return the second argument.


<code lua>
<syntaxhighlight lang="lua">
print(4 and 5)        --> 5
print(4 and 5)        --> 5
print(nil and 13)      --> nil
print(nil and 13)      --> nil
Line 88: 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===
Line 94: Line 103:
The '''or''' operator returns the first argument if it is neither false nor [[nil]], otherwise it will return the second argument.
The '''or''' operator returns the first argument if it is neither false nor [[nil]], otherwise it will return the second argument.


<code lua>
<syntaxhighlight lang="lua">
print(true or true) -- true
print(true or true) -- true
print(true or false) -- true
print(true or false) -- true
Line 102: Line 111:
print(4 or 5)          --> 4
print(4 or 5)          --> 4
print(false or 5)      --> 5
print(false or 5)      --> 5
</code>
</syntaxhighlight>


== See Also ==
== See also ==


* [[RBX.lua.BoolValue (Object)]]
* [[RBX.lua.BoolValue (Object)]]
Line 111: Line 120:


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


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


[[Category:Data Types]]
[[Category:Data types]]

Latest revision as of 02: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