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:
- Operadores Aritméticos
- Operadores de Asignación
- Operadores de Comparación
- Operadores Lógicos
- Operadores de Bits
- Operadores Misceláneos
- 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
}
- 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
}
- 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
}
- 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
}
- 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)
}
- 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.
Curso de Programación en Go
Módulo 1: Introducción a Go
- Introducción a Go
- Configuración del Entorno de Go
- Tu Primer Programa en Go
- Sintaxis y Estructura Básica
Módulo 2: Conceptos Básicos
Módulo 3: Estructuras de Datos Avanzadas
Módulo 4: Manejo de Errores
Módulo 5: Concurrencia
Módulo 6: Temas Avanzados
Módulo 7: Desarrollo Web con Go
Módulo 8: Trabajando con Bases de Datos
Módulo 9: Despliegue y Mantenimiento
- Construcción y Despliegue de Aplicaciones Go
- Registro de Logs
- Monitoreo y Optimización de Rendimiento
- Mejores Prácticas de Seguridad
