Operators | Documentation - Roblox Creator Hub (2024)

An operator is a symbol for performing an operation or conditional evaluation.

Logical

Logical operators return values depending on the boolean values of the given arguments. If an argument isn't false or nil, then the operator evaluates it as true. Unlike many other languages, Luau considers both zero and the empty string as true. The following table summarizes how logical operators behave in conditionals.

OperatorDescriptions
andEvaluates as true only if both conditions are true
orEvaluates as true if either condition is true
notEvaluates as the opposite of the condition

and

The binary operator and returns one of the two arguments. If the first argument evaluates to true, then it returns the second argument. Otherwise, it returns the first argument.

print(4 and 5) -- 5

print(nil and 12) -- nil

print(false and 12) -- false

print(false and true) -- false

print(false and false) -- false

print(true and false) -- false

print(true and true) -- true

You can use and to test multiple conditions in control structures such as if statements and while loops. For example, the following ifthen statement tests that two conditions are both true:

local pasta = true

local tomatoSauce = true

if pasta == true and tomatoSauce == true then

print("We have spaghetti dinner")

else

print("Something is missing...")

end

-- Output: We have spaghetti dinner

or

The binary operator or returns one of the two arguments. If the first argument evaluates to true, then it returns the first argument. Otherwise, it returns the second argument.

local y = x or 1

print(y) -- 1 because x doesn't exist and is therefore nil

local d = false

local e = d or 1

print(e) -- 1 because d is false

print(4 or 5) -- 4

print(nil or 12) -- 12

print(false or 12) -- 12

print(false or true) -- true

print(false or false) -- false

print(true or false) -- true

print(true or true) -- true

You can use or to perform complex logical tests in control structures. For example, the following ifthen statement tests whether two conditions are true or a third condition is true:

local pasta = false

local tomatoSauce = true

local garlicBread = true

if (pasta == true and tomatoSauce == true) or garlicBread == true then

print("We have either spaghetti dinner OR garlic bread")

else

print("Something is missing...")

end

-- Output: We have either spaghetti dinner OR garlic bread

not

The unary operator not returns the opposite boolean value of the argument. If the argument is false or nil, then it returns true. Otherwise, it returns false.

print(not true) -- false

print(not false) -- true

print(not nil) -- true

print(not "text") -- false

print(not 0) -- false

You can use the not operator to trigger a conditional or loop if a variable is false or nil.

local nilVariable -- Variable is declared but has no value, so it's nil

local falseVariable = false -- Variable is declared with value of false

if not nilVariable then

print(nilVariable) -- Outputs "nil" because nil isn't true

end

if not falseVariable then

print(falseVariable) -- Outputs "false" because false isn't true

end

You can also use the not operator to test for the opposite of an entire multi-condition statement. In the following code sample, the ifthen conditional tests that it's neither true that three is greater than four nor is it true that five is greater than four.

local three = 3

local four = 4

local five = 5

if not (three > four or five < four) then

print("Three is less than 4 and five is greater than 4.")

end

-- Output: Three is less than 4 and five is greater than 4.

Relational

Relational operators compare two parameters and return a boolean: true or false.

OperatorDescriptionExampleAssociated metamethod
==Equal to3 == 5false__eq
~=Not equal to3 ~= 5true
>Greater than3 > 5false
<Less than3 < 5true__lt
>=Greater than or equal to3 >= 5false
<=Less than or equal to3 <= 5true__le

Arithmetic

Lua supports the usual binary operators along with exponentiation, modulus, and unary negation.

OperatorDescriptionExampleAssociated metamethod
+Addition1 + 1 = 2__add
-Subtraction1 - 1 = 0__sub
*Multiplication5 * 5 = 25__mul
/Division10 / 5 = 2__div
//Floor Division10 // 4 = 2
-10 // 4 = -3
__idiv
^Exponentiation2 ^ 4 = 16__pow
%Modulus13 % 7 = 6__mod
-Unary negation-2 = 0 - 2__unm

Compound Assignment

You can use compound assignment operators to set a variable equal to the result of an operation where the first parameter is the variable's current value.

The operation in a compound assignment occurs once. For example, if an expression generates a random index in a table, Luau uses the same index for both the operation and the assignment.

In the following examples, suppose local x = 3.

OperatorOperationExampleNew Value of x
+=Additionx += 25
-=Subtractionx -= 21
*=Multiplicationx *= 26
/=Divisionx /= 21.5
//=Floor Divisionx //= 21
%=Modulusx %= 21
^=Exponentiationx ^= 29
..=Concatenationx ..= " World!" "3 World!"

Miscellaneous

Miscellaneous operators include concatenation and length.

OperatorDescriptionExampleAssociated metamethod
..Concatenates two stringsprint("Hello " .. "World!")__concat
#Length of tableIf tableVar = {1, 2, 3}, then #tableVar == 3.__len
Operators | Documentation - Roblox Creator Hub (2024)
Top Articles
UFC 305 results: Dricus Du Plessis vs. Israel Adesanya fight card highlights
TV Schedule for PBS (KET2) Lexington, KY
Aberration Surface Entrances
Knoxville Tennessee White Pages
Durr Burger Inflatable
Odawa Hypixel
Restored Republic January 20 2023
Tabc On The Fly Final Exam Answers
Jonathon Kinchen Net Worth
Senior Tax Analyst Vs Master Tax Advisor
35105N Sap 5 50 W Nit
Graveguard Set Bloodborne
Stream UFC Videos on Watch ESPN - ESPN
Toonily The Carry
South Ms Farm Trader
4156303136
Nonne's Italian Restaurant And Sports Bar Port Orange Photos
Red Tomatoes Farmers Market Menu
Webcentral Cuny
Tvtv.us Duluth Mn
Vanessawest.tripod.com Bundy
Missed Connections Inland Empire
Gentle Dental Northpointe
Aps Day Spa Evesham
Toyota Camry Hybrid Long Term Review: A Big Luxury Sedan With Hatchback Efficiency
Happy Life 365, Kelly Weekers | 9789021569444 | Boeken | bol
The Old Way Showtimes Near Regency Theatres Granada Hills
Yog-Sothoth
Drug Test 35765N
LCS Saturday: Both Phillies and Astros one game from World Series
Rs3 Ushabti
Ihub Fnma Message Board
Section 408 Allegiant Stadium
Xfinity Outage Map Lacey Wa
Southern Democrat vs. MAGA Republican: Why NC governor race is a defining contest for 2024
Amici Pizza Los Alamitos
Skyrim:Elder Knowledge - The Unofficial Elder Scrolls Pages (UESP)
Viewfinder Mangabuddy
Wsbtv Fish And Game Report
Craigslist Gigs Wichita Ks
ESA Science & Technology - The remarkable Red Rectangle: A stairway to heaven? [heic0408]
Busted Newspaper Mcpherson Kansas
Lady Nagant Funko Pop
The Horn Of Plenty Figgerits
Backpage New York | massage in New York, New York
Underground Weather Tropical
Wrentham Outlets Hours Sunday
Deshuesadero El Pulpo
De Donde Es El Area +63
Estes4Me Payroll
28 Mm Zwart Spaanplaat Gemelamineerd (U999 ST9 Matte | RAL9005) Op Maat | Zagen Op Mm + ABS Kantenband
Cbs Scores Mlb
Latest Posts
Article information

Author: Sen. Ignacio Ratke

Last Updated:

Views: 5697

Rating: 4.6 / 5 (76 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Sen. Ignacio Ratke

Birthday: 1999-05-27

Address: Apt. 171 8116 Bailey Via, Roberthaven, GA 58289

Phone: +2585395768220

Job: Lead Liaison

Hobby: Lockpicking, LARPing, Lego building, Lapidary, Macrame, Book restoration, Bodybuilding

Introduction: My name is Sen. Ignacio Ratke, I am a adventurous, zealous, outstanding, agreeable, precious, excited, gifted person who loves writing and wants to share my knowledge and understanding with you.