Un operatore è un simbolo per eseguire un'operazione o una valutazione condizionale.
Logico
I operators logici restituiscono valori a seconda dei valori boolean dei parametri forniti. Se un argument non è false o nil , allora l'operatore lo valuta come true . A differenza di molte altre lingue, Luau considera sia zero che la stringa vuota come 1> true1> . La seguente tabella riassume come gli operators log
Operatore | Descrizioni |
---|---|
e | Si valuta come vero solo se entrambe le condizioni sono vere |
o | Valuta come vero se una delle condizioni è vera |
non | Valuta come il contrario della condizione |
e
L'operatore binario and restituisce uno dei due argomenti. Se il primo argomento si valuta su true , allora restituisce il secondo argomento. Altrimenti, restituisce l'argomento primo.
print(4 and 5) -- 5print(nil and 12) -- nienteprint(false and 12) -- falsoprint(false and true) -- falsoprint(false and false) -- falsoprint(true and false) -- falsoprint(true and true) -- true
Puoi usare and per testare più condizioni in strutture di controllo come if dichiarazioni e 3> 4> while4> . Ad esempio, la seguente 8> 8> if8> — 1> 2> if2> dichiarazione testa che due condizioni sono
local pasta = truelocal tomatoSauce = trueif pasta == true and tomatoSauce == true thenprint("We have spaghetti dinner")elseprint("Something is missing...")end-- Output: We have spaghetti dinner
or
L'operatore binario or restituisce uno dei due argomenti. Se il primo argomento si valuta su true , allora restituisce il primo argomento. Altrimenti, restituisce il secondo argomento.
local y = x or 1print(y) -- 1 perché x non esiste e quindi non è nulllocal d = falselocal e = d or 1print(e) -- 1 perché d è falsoprint(4 or 5) -- 4print(nil or 12) -- 12print(false or 12) -- 12print(false or true) -- veroprint(false or false) -- falsoprint(true or false) -- veroprint(true or true) -- true
Puoi usare or per eseguire test logici complessi in strutture di controllo. Ad esempio, la seguente if — 1> then1> dichiarazione di test testa se due condizioni sono vere 4>o4> una terza condizione è vera:
local pasta = falselocal tomatoSauce = truelocal garlicBread = trueif (pasta == true and tomatoSauce == true) or garlicBread == true thenprint("We have either spaghetti dinner OR garlic bread")elseprint("Something is missing...")end-- Output: We have either spaghetti dinner OR garlic bread
non
L'operatore unario not restituisce il valore diBooleano contrario dell'argomento. Se l'argomento è false o nil, restituisce 1> true1> . Altrimenti, restituisce 4> false4> .
print(not true) -- falsoprint(not false) -- veroprint(not nil) -- veroprint(not "text") -- falsoprint(not 0) -- false
Puoi usare l'operatore not per attivare una condizione o un loop se una variabile è false o nil .
local nilVariable -- Variabile è dichiarato ma non ha valore, quindi è nulllocal falseVariable = false -- Variabile è dichiarato con valore falsoif not nilVariable thenprint(nilVariable) -- Outputs "nil" because nil isn't trueendif not falseVariable thenprint(falseVariable) -- Outputs "false" because false non è veroend
Puoi anche usare il not operatore per testare per il contrario di una dichiarazione multi-condizione intera. Nel seguente esempio di codice, i if — then test condizionali che non sono né veri che tre sono più grandi di quattro né veri che cinque sono più grandi di quattro.
local three = 3local four = 4local five = 5if not (three > four or five < four) thenprint("Three is less than 4 and five is greater than 4.")end-- Output: Three is less than 4 and five is greater than 4.
Relazionale
I operators relazionali confrontano due parametri e restituiscono un button : boolean o true .
Operatore | Descrizione | Esempio | Metodi metametodo associati |
---|---|---|---|
== | Uguale a | 3 == 5 → false | __eq |
: | Non uguale a | 3 5 → vero | |
> | Superiore a | 3 > 5 → false | |
< | Meno di | 3 < 5 → vero | __lt |
>= | Superiore a o uguale a | 3 >= 5 → false | |
Inferiore o uguale a | 3 <= 5 → vero | __le |
Aritmetica
Lua supporta gli usuali operatori binari insieme all'esponentazione, al modulo e alla negazione unaria.
Operatore | Descrizione | Esempio | Metodi metametodo associati |
---|---|---|---|
+ | Aggiungere | 1 + 1 = 2 | __add |
- | Sottrazione | 1 - 1 = 0 | __sub |
* | Moltiplicazione | 5 * 5 = 25 | __mul |
/ | Divisione | 10 / 5 = 2 | __div |
// | Divisione del Piano | 10 // 4 = 2-10 // 4 = -3 | __idiv |
^ | Esponenzione | 2 ^ 4 = 16 | __pow |
% | Modulo | 13% 7 = 6 | __mod |
- | Negazione unaria | -2 = 0 - 2 | __unm |
Assunzione di Compound
Puoi usare gli operatori di assegnazione dei composti per impostare una variabile pari al risultato di un'operazione in cui il primo parametro è il valore corrente della variabile.
L'operazione in una assegnazione di composti avviene una volta. Ad esempio, se un'espressione genera un indice casuale in una tabella, Luau utilizza lo stesso indice per entrambi l'operazione e l'assegnazione.
Nell'esempio seguente, supponi local x = 3 .
Operatore | Operazione | Esempio | Nuovo valore di x |
---|---|---|---|
Aggiungere | x += 2 | 5 | |
=-) | Sottrazione | x=- 2 | 1 ] |
* | Moltiplicazione | x*2 | 6 |
/= | Divisione | x /= 2 | 1.5 |
//= | Divisione del Piano | x //= 2 | 1 ] |
%=) | Modulo | x%=2 | 1 ] |
^= | Esponenzione | x ^= 2 | 9 |
..= | Concatenazione | x ..= " World!" | "3 World!" |
Varie
I operators miscellaneous includono concatenazione e lunghezza .
Operatore | Descrizione | Esempio | Metodi metametodo associati |
---|---|---|---|
.. | Concatena due stringhe | stamp ("Hello".. "World!" | __concat: |
# | Lunghezza della tabella | Se tableVar = 1, 2, 3 , allora #tableVar == 3 . | __len |