En este módulo, aprenderemos sobre los operadores en Go, que son símbolos especiales que se utilizan para realizar operaciones sobre variables y valores. Los operadores en Go se pueden clasificar en varias categorías:

  1. Operadores Aritméticos
  2. Operadores de Asignación
  3. Operadores de Comparación
  4. Operadores Lógicos
  5. Operadores de Bits
  6. Operadores Misceláneos

  1. Operadores Aritméticos

Los operadores aritméticos se utilizan para realizar operaciones matemáticas comunes como suma, resta, multiplicación, etc.

Operador Descripción Ejemplo
+ Suma a + b
- Resta a - b
* Multiplicación a * b
/ División a / b
% Módulo a % b

Ejemplo Práctico

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ón:", a * b) // 30
    fmt.Println("División:", a / b)     // 3
    fmt.Println("Módulo:", a % b)       // 1
}

  1. Operadores de Asignación

Los operadores de asignación se utilizan para asignar valores a las variables.

Operador Descripción Ejemplo
= Asignación simple a = 10
+= Suma y asignación a += 5 (equivale a a = a + 5)
-= Resta y asignación a -= 5 (equivale a a = a - 5)
*= Multiplicación y asignación a *= 5 (equivale a a = a * 5)
/= División y asignación a /= 5 (equivale a a = a / 5)
%= Módulo y asignación a %= 5 (equivale a a = a % 5)

Ejemplo Práctico

package main

import "fmt"

func main() {
    a := 10
    a += 5
    fmt.Println("a += 5:", a) // 15

    a -= 3
    fmt.Println("a -= 3:", a) // 12

    a *= 2
    fmt.Println("a *= 2:", a) // 24

    a /= 4
    fmt.Println("a /= 4:", a) // 6

    a %= 5
    fmt.Println("a %= 5:", a) // 1
}

  1. Operadores de Comparación

Los operadores de comparación se utilizan para comparar dos valores. Devuelven un valor booleano (true o false).

Operador Descripción Ejemplo
== Igual a a == b
!= No igual a a != b
> Mayor que a > b
< Menor que a < b
>= Mayor o igual que a >= b
<= Menor o igual que a <= b

Ejemplo Práctico

package main

import "fmt"

func main() {
    a := 10
    b := 20

    fmt.Println("a == b:", a == b) // false
    fmt.Println("a != b:", a != b) // true
    fmt.Println("a > b:", a > b)   // false
    fmt.Println("a < b:", a < b)   // true
    fmt.Println("a >= b:", a >= b) // false
    fmt.Println("a <= b:", a <= b) // true
}

  1. Operadores Lógicos

Los operadores lógicos se utilizan para combinar dos o más condiciones lógicas.

Operador Descripción Ejemplo
&& AND lógico a && b
` `
! NOT lógico !a

Ejemplo Práctico

package main

import "fmt"

func main() {
    a := true
    b := false

    fmt.Println("a && b:", a && b) // false
    fmt.Println("a || b:", a || b) // true
    fmt.Println("!a:", !a)         // false
}

  1. Operadores de Bits

Los operadores de bits se utilizan para realizar operaciones a nivel de bits.

Operador Descripción Ejemplo
& AND a nivel de bits a & b
` ` OR a nivel de bits
^ XOR a nivel de bits a ^ b
<< Desplazamiento a la izquierda a << 1
>> Desplazamiento a la derecha a >> 1

Ejemplo Práctico

package main

import "fmt"

func main() {
    a := 10 // 1010 en binario
    b := 3  // 0011 en binario

    fmt.Println("a & b:", a & b) // 2 (0010 en binario)
    fmt.Println("a | b:", a | b) // 11 (1011 en binario)
    fmt.Println("a ^ b:", a ^ b) // 9 (1001 en binario)
    fmt.Println("a << 1:", a << 1) // 20 (10100 en binario)
    fmt.Println("a >> 1:", a >> 1) // 5 (0101 en binario)
}

  1. Operadores Misceláneos

Go no tiene operadores misceláneos como el operador ternario (?:) que se encuentra en otros lenguajes como C o Java. En su lugar, se utilizan estructuras de control como if-else para lograr la misma funcionalidad.

Ejercicios Prácticos

Ejercicio 1

Escribe un programa en Go que tome dos números enteros como entrada y realice las siguientes operaciones: suma, resta, multiplicación, división y módulo. Imprime los resultados.

Solución

package main

import "fmt"

func main() {
    var a, b int
    fmt.Print("Ingresa el primer número: ")
    fmt.Scan(&a)
    fmt.Print("Ingresa el segundo número: ")
    fmt.Scan(&b)

    fmt.Println("Suma:", a + b)
    fmt.Println("Resta:", a - b)
    fmt.Println("Multiplicación:", a * b)
    fmt.Println("División:", a / b)
    fmt.Println("Módulo:", a % b)
}

Ejercicio 2

Escribe un programa en Go que tome dos valores booleanos como entrada y realice las siguientes operaciones lógicas: AND, OR y NOT. Imprime los resultados.

Solución

package main

import "fmt"

func main() {
    var a, b bool
    fmt.Print("Ingresa el primer valor booleano (true/false): ")
    fmt.Scan(&a)
    fmt.Print("Ingresa el segundo valor booleano (true/false): ")
    fmt.Scan(&b)

    fmt.Println("a && b:", a && b)
    fmt.Println("a || b:", a || b)
    fmt.Println("!a:", !a)
}

Conclusión

En esta sección, hemos cubierto los diferentes tipos de operadores en Go, incluyendo aritméticos, de asignación, de comparación, lógicos y de bits. También hemos proporcionado ejemplos prácticos y ejercicios para reforzar los conceptos aprendidos. Con esta base, estarás mejor preparado para manejar operaciones básicas y avanzadas en tus programas en Go.

© Copyright 2024. Todos los derechos reservados