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
