En aquest tema, explorarem els diferents tipus d'operadors disponibles en Lua. Els operadors són símbols que indiquen a l'intèrpret que realitzi operacions específiques, com ara aritmètiques, lògiques o de comparació. A Lua, els operadors es poden classificar en les següents categories:
- Operadors aritmètics
- Operadors de comparació
- Operadors lògics
- Operadors de concatenació
- Operadors de longitud
- Operadors de precedència
- Operadors Aritmètics
Els operadors aritmètics s'utilitzen per realitzar operacions matemàtiques bàsiques. A continuació es mostra una taula amb els operadors aritmètics disponibles en Lua:
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
+ |
Suma | 5 + 3 |
8 |
- |
Resta | 5 - 3 |
2 |
* |
Multiplicació | 5 * 3 |
15 |
/ |
Divisió | 5 / 3 |
1.6667 |
% |
Mòdul (residu) | 5 % 3 |
2 |
^ |
Exponenciació | 5 ^ 3 |
125 |
- |
Negació unària | -5 |
-5 |
Exemple Pràctic
local a = 10 local b = 3 print("Suma: ", a + b) -- Output: Suma: 13 print("Resta: ", a - b) -- Output: Resta: 7 print("Multiplicació: ", a * b) -- Output: Multiplicació: 30 print("Divisió: ", a / b) -- Output: Divisió: 3.3333 print("Mòdul: ", a % b) -- Output: Mòdul: 1 print("Exponenciació: ", a ^ b) -- Output: Exponenciació: 1000 print("Negació unària: ", -a) -- Output: Negació unària: -10
- Operadors de Comparació
Els operadors de comparació s'utilitzen per comparar dos valors. Aquests operadors sempre retornen un valor booleà (true
o false
). A continuació es mostra una taula amb els operadors de comparació disponibles en Lua:
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
== |
Igual a | 5 == 3 |
false |
~= |
Diferent de | 5 ~= 3 |
true |
> |
Major que | 5 > 3 |
true |
< |
Menor que | 5 < 3 |
false |
>= |
Major o igual que | 5 >= 3 |
true |
<= |
Menor o igual que | 5 <= 3 |
false |
Exemple Pràctic
local a = 10 local b = 3 print("Igual a: ", a == b) -- Output: Igual a: false print("Diferent de: ", a ~= b) -- Output: Diferent de: true print("Major que: ", a > b) -- Output: Major que: true print("Menor que: ", a < b) -- Output: Menor que: false print("Major o igual que: ", a >= b)-- Output: Major o igual que: true print("Menor o igual que: ", a <= b)-- Output: Menor o igual que: false
- Operadors Lògics
Els operadors lògics s'utilitzen per combinar expressions booleanes. A Lua, els operadors lògics disponibles són:
Operador | Descripció | Exemple | Resultat |
---|---|---|---|
and |
I lògic | true and false |
false |
or |
O lògic | true or false |
true |
not |
Negació | not true |
false |
Exemple Pràctic
local a = true local b = false print("I lògic: ", a and b) -- Output: I lògic: false print("O lògic: ", a or b) -- Output: O lògic: true print("Negació: ", not a) -- Output: Negació: false
- Operador de Concatenació
L'operador de concatenació s'utilitza per unir dues cadenes de text. A Lua, l'operador de concatenació és ..
.
Exemple Pràctic
local str1 = "Hola" local str2 = " món" print("Concatenació: ", str1 .. str2) -- Output: Concatenació: Hola món
- Operador de Longitud
L'operador de longitud (#
) s'utilitza per obtenir la longitud d'una cadena o el nombre d'elements en una taula.
Exemple Pràctic
local str = "Hola món" local tbl = {1, 2, 3, 4, 5} print("Longitud de la cadena: ", #str) -- Output: Longitud de la cadena: 8 print("Nombre d'elements en la taula: ", #tbl) -- Output: Nombre d'elements en la taula: 5
- Precedència d'Operadors
La precedència d'operadors determina l'ordre en què s'executen les operacions en una expressió. A Lua, la precedència d'operadors és la següent (de major a menor):
^
(exponenciació)not
(negació),#
(longitud),-
(negació unària)*
,/
,%
(multiplicació, divisió, mòdul)+
,-
(suma, resta)..
(concatenació)<
,>
,<=
,>=
,~=
,==
(comparació)and
(I lògic)or
(O lògic)
Exemple Pràctic
local a = 5 local b = 3 local c = 2 -- Sense parèntesis, la multiplicació es fa abans que la suma print("Resultat: ", a + b * c) -- Output: Resultat: 11 -- Amb parèntesis, la suma es fa abans que la multiplicació print("Resultat: ", (a + b) * c) -- Output: Resultat: 16
Exercicis Pràctics
- Escriu un script que calculi la suma, resta, multiplicació, divisió i mòdul de dos nombres donats per l'usuari.
- Escriu un script que compari dos nombres donats per l'usuari i imprimeixi si són iguals, diferents, si un és major que l'altre, etc.
- Escriu un script que uneixi dues cadenes de text donades per l'usuari i imprimeixi el resultat.
- Escriu un script que calculi la longitud d'una cadena de text donada per l'usuari.
Solucions
- Suma, resta, multiplicació, divisió i mòdul
print("Introdueix el primer nombre:") local num1 = io.read("*n") print("Introdueix el segon nombre:") local num2 = io.read("*n") print("Suma: ", num1 + num2) print("Resta: ", num1 - num2) print("Multiplicació: ", num1 * num2) print("Divisió: ", num1 / num2) print("Mòdul: ", num1 % num2)
- Comparació de nombres
print("Introdueix el primer nombre:") local num1 = io.read("*n") print("Introdueix el segon nombre:") local num2 = io.read("*n") print("Igual a: ", num1 == num2) print("Diferent de: ", num1 ~= num2) print("Major que: ", num1 > num2) print("Menor que: ", num1 < num2) print("Major o igual que: ", num1 >= num2) print("Menor o igual que: ", num1 <= num2)
- Concatenació de cadenes
print("Introdueix la primera cadena:") local str1 = io.read() print("Introdueix la segona cadena:") local str2 = io.read() print("Concatenació: ", str1 .. str2)
- Longitud de cadena
Conclusió
En aquest tema, hem après sobre els diferents tipus d'operadors disponibles en Lua, incloent-hi els operadors aritmètics, de comparació, lògics, de concatenació i de longitud. També hem vist com la precedència d'operadors afecta l'ordre en què es realitzen les operacions. Finalment, hem practicat aquests conceptes amb alguns exercicis pràctics. Ara estàs preparat per utilitzar operadors en els teus scripts Lua!
Curs de Programació en Lua
Mòdul 1: Introducció a Lua
Mòdul 2: Conceptes Bàsics
Mòdul 3: Conceptes Intermedis
Mòdul 4: Conceptes Avançats
- Coroutines
- Programació Orientada a Objectes en Lua
- Tècniques de Depuració
- Optimització del Rendiment
- Ús de l'API C de Lua
Mòdul 5: Aplicacions Pràctiques
- Construcció d'un Joc Simple
- Scripting en Motors de Joc
- Automatització de Tasques amb Lua
- Integració de Lua amb Altres Llenguatges