En aquest tema, explorarem els diferents tipus d'operadors disponibles en Go. Els operadors són símbols que indiquen a l'intèrpret que realitzi operacions específiques sobre una o més operandes. Els operadors en Go es poden classificar en diverses categories:
- Operadors Aritmètics
- Operadors de Comparació
- Operadors Lògics
- Operadors de Bits
- Operadors d'Assignació
- Operadors Miscel·lanis
- Operadors Aritmètics
Els operadors aritmètics s'utilitzen per realitzar operacions matemàtiques bàsiques com la suma, resta, multiplicació, divisió i mòdul.
Operador | Descripció | Exemple |
---|---|---|
+ |
Suma | a + b |
- |
Resta | a - b |
* |
Multiplicació | a * b |
/ |
Divisió | a / b |
% |
Mòdul | a % b |
Exemple de Codi
package main import "fmt" func main() { a := 10 b := 3 fmt.Println("Suma:", a + b) // 13 fmt.Println("Resta:", a - b) // 7 fmt.Println("Multiplicació:", a * b) // 30 fmt.Println("Divisió:", a / b) // 3 fmt.Println("Mòdul:", a % b) // 1 }
- 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 de Codi
package main import "fmt" func main() { a := 10 b := 3 fmt.Println("Igual a:", a == b) // false fmt.Println("Diferent de:", a != b) // true fmt.Println("Major que:", a > b) // true fmt.Println("Menor que:", a < b) // false fmt.Println("Major o igual que:", a >= b) // true fmt.Println("Menor o igual que:", a <= b) // false }
- Operadors Lògics
Els operadors lògics s'utilitzen per combinar expressions booleanes.
Operador | Descripció | Exemple |
---|---|---|
&& |
I lògic | a && b |
` | ` | |
! |
No lògic | !a |
Exemple de Codi
package main import "fmt" func main() { a := true b := false fmt.Println("I lògic:", a && b) // false fmt.Println("O lògic:", a || b) // true fmt.Println("No lògic:", !a) // false }
- Operadors de Bits
Els operadors de bits s'utilitzen per realitzar operacions a nivell de bit.
Operador | Descripció | Exemple |
---|---|---|
& |
I a nivell de bit | a & b |
` | ` | O a nivell de bit |
^ |
XOR a nivell de bit | a ^ b |
<< |
Desplaçament a l'esquerra | a << b |
>> |
Desplaçament a la dreta | a >> b |
Exemple de Codi
package main import "fmt" func main() { a := 10 // 1010 en binari b := 3 // 0011 en binari fmt.Println("I a nivell de bit:", a & b) // 2 (0010 en binari) fmt.Println("O a nivell de bit:", a | b) // 11 (1011 en binari) fmt.Println("XOR a nivell de bit:", a ^ b) // 9 (1001 en binari) fmt.Println("Desplaçament a l'esquerra:", a << 1) // 20 (10100 en binari) fmt.Println("Desplaçament a la dreta:", a >> 1) // 5 (0101 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 |
Exemple de Codi
package main import "fmt" func main() { a := 10 b := 3 a += b fmt.Println("Assignació amb suma:", a) // 13 a -= b fmt.Println("Assignació amb resta:", a) // 10 a *= b fmt.Println("Assignació amb multiplicació:", a) // 30 a /= b fmt.Println("Assignació amb divisió:", a) // 10 a %= b fmt.Println("Assignació amb mòdul:", a) // 1 }
- Operadors Miscel·lanis
Go també té alguns operadors miscel·lanis que són útils en diverses situacions.
Operador | Descripció | Exemple |
---|---|---|
& |
Adreça de | &a |
* |
Contingut de l'adreça | *a |
Exemple de Codi
package main import "fmt" func main() { a := 10 b := &a // b és un punter a a fmt.Println("Adreça de a:", b) // Mostra l'adreça de memòria de a fmt.Println("Contingut de l'adreça de b:", *b) // 10 }
Exercicis Pràctics
- Escriu un programa que calculi la suma, resta, multiplicació, divisió i mòdul de dos nombres enters introduïts per l'usuari.
- Escriu un programa que compari dos nombres enters introduïts per l'usuari i mostri si són iguals, diferents, major, menor, major o igual, menor o igual.
- Escriu un programa que utilitzi operadors lògics per combinar diverses expressions booleanes i mostri el resultat.
- Escriu un programa que utilitzi operadors de bits per realitzar operacions a nivell de bit sobre dos nombres enters introduïts per l'usuari.
- Escriu un programa que utilitzi operadors d'assignació per modificar el valor d'una variable inicialitzada amb un nombre enter.
Solucions
- Suma, Resta, Multiplicació, Divisió i Mòdul
package main import "fmt" func main() { var a, b int fmt.Print("Introdueix el primer nombre: ") fmt.Scan(&a) fmt.Print("Introdueix el segon nombre: ") fmt.Scan(&b) fmt.Println("Suma:", a + b) fmt.Println("Resta:", a - b) fmt.Println("Multiplicació:", a * b) fmt.Println("Divisió:", a / b) fmt.Println("Mòdul:", a % b) }
- Comparació de Nombres Enters
package main import "fmt" func main() { var a, b int fmt.Print("Introdueix el primer nombre: ") fmt.Scan(&a) fmt.Print("Introdueix el segon nombre: ") fmt.Scan(&b) fmt.Println("Igual a:", a == b) fmt.Println("Diferent de:", a != b) fmt.Println("Major que:", a > b) fmt.Println("Menor que:", a < b) fmt.Println("Major o igual que:", a >= b) fmt.Println("Menor o igual que:", a <= b) }
- Operadors Lògics
package main import "fmt" func main() { var a, b bool fmt.Print("Introdueix el primer valor booleà (true/false): ") fmt.Scan(&a) fmt.Print("Introdueix el segon valor booleà (true/false): ") fmt.Scan(&b) fmt.Println("I lògic:", a && b) fmt.Println("O lògic:", a || b) fmt.Println("No lògic del primer valor:", !a) }
- Operadors de Bits
package main import "fmt" func main() { var a, b int fmt.Print("Introdueix el primer nombre: ") fmt.Scan(&a) fmt.Print("Introdueix el segon nombre: ") fmt.Scan(&b) fmt.Println("I a nivell de bit:", a & b) fmt.Println("O a nivell de bit:", a | b) fmt.Println("XOR a nivell de bit:", a ^ b) fmt.Println("Desplaçament a l'esquerra del primer nombre:", a << 1) fmt.Println("Desplaçament a la dreta del primer nombre:", a >> 1) }
- Operadors d'Assignació
package main import "fmt" func main() { var a int fmt.Print("Introdueix un nombre: ") fmt.Scan(&a) a += 5 fmt.Println("Assignació amb suma:", a) a -= 3 fmt.Println("Assignació amb resta:", a) a *= 2 fmt.Println("Assignació amb multiplicació:", a) a /= 4 fmt.Println("Assignació amb divisió:", a) a %= 3 fmt.Println("Assignació amb mòdul:", a) }
Conclusió
En aquest tema, hem après sobre els diferents tipus d'operadors en Go i com utilitzar-los per realitzar diverses operacions. Hem cobert operadors aritmètics, de comparació, lògics, de bits, d'assignació i miscel·lanis. A més, hem proporcionat exemples pràctics i exercicis per reforçar els conceptes apresos. En el proper tema, explorarem les estructures de control en Go.
Curs de Programació en Go
Mòdul 1: Introducció a Go
- Introducció a Go
- Configuració de l'Entorn Go
- El Teu Primer Programa en Go
- Sintaxi i Estructura Bàsiques
Mòdul 2: Conceptes Bàsics
Mòdul 3: Estructures de Dades Avançades
Mòdul 4: Gestió d'Errors
Mòdul 5: Concurrència
Mòdul 6: Temes Avançats
Mòdul 7: Desenvolupament Web amb Go
Mòdul 8: Treballant amb Bases de Dades
Mòdul 9: Desplegament i Manteniment
- Construcció i Desplegament d'Aplicacions Go
- Registre
- Monitorització i Optimització del Rendiment
- Millors Pràctiques de Seguretat