Creación y uso de funciones personalizadas en Go

Clase 12 de 29Curso de Go

Resumen

Las funciones y métodos son fundamentales en Go, y aprender a desarrollarlas correctamente es esencial para construir aplicaciones efectivas. Estas herramientas te permiten realizar acciones específicas mediante la ejecución de sentencias que reciben parámetros, procesan información y generan resultados concretos.

¿Qué es una función en Go?

Una función o método en Go es una sentencia que ejecuta una operación especificada entre paréntesis. Puede recibir parámetros para desempeñar acciones internas, como evaluar valores, realizar cálculos y devolver resultados específicos. Por ejemplo, la función len() evalúa la longitud de un arreglo.

¿Cómo crear tu primera función personalizada en Go?

Crear funciones en Go es sencillo siguiendo algunos pasos esenciales:

  1. Define la función: utiliza la palabra reservada func seguida del nombre de la función.
  2. Agrega parámetros: especifica entre paréntesis los parámetros necesarios para operar internamente.
  3. Define el tipo de devolución: tras los parámetros, indica qué tipo de dato devolverá la función (si lo hace).

Ejemplo práctico para sumar dos números:

func suma(numero1 int, numero2 int) int {
        resultado := numero1 + numero2
        return resultado
}

Puedes incluir parámetros de diferentes tipos de datos según tu necesidad, por ejemplo, mezclando enteros con strings.

¿Cómo interactuar con el usuario usando funciones?

Además, las funciones en Go pueden combinarse con interacciones directo con el usuario mediante comandos básicos en consola, esto gracias al paquete fmt. Por ejemplo, la función Scanln:

fmt.Println("Ingresa el primer número")
fmt.Scanln(&numero1)

Con esto, los datos proporcionados por el usuario serán almacenados en variables previamente declaradas para continuar con la lógica del programa.

Ejemplo completo de uso interactivo:

package main

import "fmt"

func suma(numero1, numero2 int) int {
    resultado := numero1 + numero2
    return resultado
}

func main() {
    var numero1, numero2 int
    fmt.Println("Ingresa el primer número")
    fmt.Scanln(&numero1)
    fmt.Println("Ingresa el segundo número")
    fmt.Scanln(&numero2)

    resultado := suma(numero1, numero2)
    fmt.Println("La suma de los dos números es", resultado)
}

¿Cómo prevenir errores comunes en funciones?

Un aspecto clave al trabajar con funciones, especialmente en operaciones delicadas como las divisiones, es manejar posibles errores como la división entre cero. Aquí puedes utilizar condiciones para asegurar la estabilidad del programa.

Ejemplo para prevenir la división entre cero:

func division(numero1, numero2 int) (int, error) {
    if numero2 == 0 {
        return 0, fmt.Errorf("no puedes dividir entre cero")
    }
    resultado := numero1 / numero2
    return resultado, nil
}

Tómate un tiempo para aplicar estos conocimientos creando funciones personalizadas para restas, multiplicaciones y divisiones. Además, fortalece tu código mediante buena práctica y gestión de excepciones simples.