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:

  1. Operadors Aritmètics
  2. Operadors de Comparació
  3. Operadors Lògics
  4. Operadors de Bits
  5. Operadors d'Assignació
  6. Operadors Miscel·lanis

  1. 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
}

  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
}

  1. 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
}

  1. 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)
}

  1. 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
}

  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

  1. Escriu un programa que calculi la suma, resta, multiplicació, divisió i mòdul de dos nombres enters introduïts per l'usuari.
  2. 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.
  3. Escriu un programa que utilitzi operadors lògics per combinar diverses expressions booleanes i mostri el resultat.
  4. Escriu un programa que utilitzi operadors de bits per realitzar operacions a nivell de bit sobre dos nombres enters introduïts per l'usuari.
  5. Escriu un programa que utilitzi operadors d'assignació per modificar el valor d'una variable inicialitzada amb un nombre enter.

Solucions

  1. 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)
}
  1. 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)
}
  1. 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)
}
  1. 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)
}
  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.

© Copyright 2024. Tots els drets reservats