En aquest tema, explorarem els diferents tipus d'operadors disponibles en Groovy. Els operadors són símbols que indiquen a l'intèrpret que realitzi operacions específiques sobre un o més operands. Groovy, com altres llenguatges de programació, ofereix una varietat d'operadors que es poden classificar en diverses categories.
Tipus d'Operadors
- Operadors Aritmètics
- Operadors de Comparació
- Operadors Lògics
- Operadors de Bit a Bit
- Operadors d'Assignació
- Operadors Especials
- Operadors Aritmètics
Els operadors aritmètics s'utilitzen per realitzar operacions matemàtiques bàsiques com la suma, resta, multiplicació, divisió, etc.
| Operador | Descripció | Exemple |
|---|---|---|
+ |
Suma | a + b |
- |
Resta | a - b |
* |
Multiplicació | a * b |
/ |
Divisió | a / b |
% |
Mòdul (residu) | a % b |
** |
Exponenciació | a ** b |
Exemple:
def a = 10
def b = 3
println "Suma: ${a + b}" // Suma: 13
println "Resta: ${a - b}" // Resta: 7
println "Multiplicació: ${a * b}" // Multiplicació: 30
println "Divisió: ${a / b}" // Divisió: 3.3333333333333335
println "Mòdul: ${a % b}" // Mòdul: 1
println "Exponenciació: ${a ** b}" // Exponenciació: 1000
- Operadors de Comparació
Els operadors de comparació s'utilitzen per comparar dos valors. El resultat d'una operació de comparació és un valor booleà (true o false).
| Operador | Descripció | Exemple |
|---|---|---|
== |
Igual a | a == b |
!= |
Diferent de | a != b |
> |
Major que | a > b |
< |
Menor que | a < b |
>= |
Major o igual que | a >= b |
<= |
Menor o igual que | a <= b |
Exemple:
def a = 10
def b = 3
println "Igual a: ${a == b}" // Igual a: false
println "Diferent de: ${a != b}" // Diferent de: true
println "Major que: ${a > b}" // Major que: true
println "Menor que: ${a < b}" // Menor que: false
println "Major o igual que: ${a >= b}" // Major o igual que: true
println "Menor o igual que: ${a <= b}" // Menor o igual que: false
- Operadors Lògics
Els operadors lògics s'utilitzen per combinar expressions booleanes.
| Operador | Descripció | Exemple |
|---|---|---|
&& |
I lògic | a && b |
| ` | ` | |
! |
Negació lògica | !a |
Exemple:
def a = true
def b = false
println "I lògic: ${a && b}" // I lògic: false
println "O lògic: ${a || b}" // O lògic: true
println "Negació lògica: ${!a}" // Negació lògica: false
- Operadors de Bit a Bit
Els operadors de bit a bit s'utilitzen per realitzar operacions a nivell de bit.
| Operador | Descripció | Exemple |
|---|---|---|
& |
I de bit a bit | a & b |
| ` | ` | O de bit a bit |
^ |
XOR de bit a bit | a ^ b |
~ |
Complement de bit | ~a |
<< |
Desplaçament a l'esquerra | a << b |
>> |
Desplaçament a la dreta | a >> b |
>>> |
Desplaçament a la dreta sense signe | a >>> b |
Exemple:
def a = 5 // 0101 en binari
def b = 3 // 0011 en binari
println "I de bit a bit: ${a & b}" // I de bit a bit: 1 (0001 en binari)
println "O de bit a bit: ${a | b}" // O de bit a bit: 7 (0111 en binari)
println "XOR de bit a bit: ${a ^ b}" // XOR de bit a bit: 6 (0110 en binari)
println "Complement de bit: ${~a}" // Complement de bit: -6 (en binari: 1010)
println "Desplaçament a l'esquerra: ${a << 1}" // Desplaçament a l'esquerra: 10 (1010 en binari)
println "Desplaçament a la dreta: ${a >> 1}" // Desplaçament a la dreta: 2 (0010 en binari)
println "Desplaçament a la dreta sense signe: ${a >>> 1}" // Desplaçament a la dreta sense signe: 2 (0010 en binari)
- Operadors d'Assignació
Els operadors d'assignació s'utilitzen per assignar valors a les variables.
| Operador | Descripció | Exemple |
|---|---|---|
= |
Assignació | a = b |
+= |
Assignació amb suma | a += b |
-= |
Assignació amb resta | a -= b |
*= |
Assignació amb multiplicació | a *= b |
/= |
Assignació amb divisió | a /= b |
%= |
Assignació amb mòdul | a %= b |
**= |
Assignació amb exponenciació | a **= b |
Exemple:
def a = 10
def b = 3
a += b
println "Assignació amb suma: ${a}" // Assignació amb suma: 13
a -= b
println "Assignació amb resta: ${a}" // Assignació amb resta: 10
a *= b
println "Assignació amb multiplicació: ${a}" // Assignació amb multiplicació: 30
a /= b
println "Assignació amb divisió: ${a}" // Assignació amb divisió: 10.0
a %= b
println "Assignació amb mòdul: ${a}" // Assignació amb mòdul: 1.0
a **= b
println "Assignació amb exponenciació: ${a}" // Assignació amb exponenciació: 1.0
- Operadors Especials
Groovy també té alguns operadors especials que no es troben en tots els llenguatges de programació.
| Operador | Descripció | Exemple |
|---|---|---|
?. |
Operador de navegació segura | a?.b |
*. |
Operador de propagació | a*.b |
?.[] |
Operador d'indexació segura | a?.[index] |
?: |
Operador Elvis | a ?: b |
as |
Operador de conversió | a as Type |
in |
Operador de pertinença | a in b |
Exemple:
def a = null
def b = "Hello"
println "Navegació segura: ${a?.length}" // Navegació segura: null
println "Operador Elvis: ${a ?: b}" // Operador Elvis: Hello
def list = [1, 2, 3]
println "Pertinença: ${2 in list}" // Pertinença: trueExercicis Pràctics
- Escriu un script en Groovy que calculi la suma, resta, multiplicació, divisió i mòdul de dos nombres donats.
- Escriu un script en Groovy que compari dos nombres i imprimeixi si són iguals, diferents, si un és major que l'altre, etc.
- Escriu un script en Groovy que utilitzi operadors lògics per combinar diverses expressions booleanes.
- Escriu un script en Groovy que utilitzi operadors de bit a bit per realitzar operacions sobre dos nombres.
- Escriu un script en Groovy que utilitzi operadors d'assignació per modificar el valor d'una variable.
Solucions
Exercici 1:
def a = 15
def b = 4
println "Suma: ${a + b}"
println "Resta: ${a - b}"
println "Multiplicació: ${a * b}"
println "Divisió: ${a / b}"
println "Mòdul: ${a % b}"Exercici 2:
def a = 10
def b = 20
println "Igual a: ${a == b}"
println "Diferent de: ${a != b}"
println "Major que: ${a > b}"
println "Menor que: ${a < b}"
println "Major o igual que: ${a >= b}"
println "Menor o igual que: ${a <= b}"Exercici 3:
def a = true
def b = false
def c = true
println "I lògic: ${a && b}"
println "O lògic: ${a || b}"
println "Negació lògica: ${!a}"
println "Combinació: ${(a && b) || c}"Exercici 4:
def a = 5 // 0101 en binari
def b = 3 // 0011 en binari
println "I de bit a bit: ${a & b}"
println "O de bit a bit: ${a | b}"
println "XOR de bit a bit: ${a ^ b}"
println "Complement de bit: ${~a}"
println "Desplaçament a l'esquerra: ${a << 1}"
println "Desplaçament a la dreta: ${a >> 1}"
println "Desplaçament a la dreta sense signe: ${a >>> 1}"Exercici 5:
def a = 10
def b = 3
a += b
println "Assignació amb suma: ${a}"
a -= b
println "Assignació amb resta: ${a}"
a *= b
println "Assignació amb multiplicació: ${a}"
a /= b
println "Assignació amb divisió: ${a}"
a %= b
println "Assignació amb mòdul: ${a}"
a **= b
println "Assignació amb exponenciació: ${a}"Conclusió
En aquesta secció, hem explorat els diferents tipus d'operadors disponibles en Groovy, incloent-hi operadors aritmètics, de comparació, lògics, de bit a bit, d'assignació i especials. Hem vist exemples pràctics de com utilitzar aquests operadors i hem proporcionat exercicis per reforçar els conceptes apresos. Amb aquesta base, estàs preparat per avançar a la següent secció sobre estructures de control en Groovy.
Curs de Programació Groovy
Mòdul 1: Introducció a Groovy
Mòdul 2: Sintaxi i Característiques del Llenguatge Groovy
Mòdul 3: Programació Orientada a Objectes en Groovy
Mòdul 4: Característiques Avançades de Groovy
Mòdul 5: Groovy en la Pràctica
- Entrada/Sortida de Fitxers
- Treballant amb XML i JSON
- Accés a Bases de Dades
- Desenvolupament Web amb Groovy
Mòdul 6: Proves i Depuració
Mòdul 7: Ecosistema i Eines de Groovy
- Eina de Construcció Gradle
- Framework de Proves Spock
- Framework Grails
- Altres Llibreries i Eines de Groovy
Mòdul 8: Millors Pràctiques i Temes Avançats
- Estil de Codi i Convencions
- Optimització del Rendiment
- Consideracions de Seguretat
- Concurrència en Groovy
