Fundamentos de Go

Go Functions and Multiple Return Values

Functions in Go can return several values. Learn the result-and-error pattern and variadic parameters.

  • Principiante
  • 4 min de lectura
  • 1 ejemplo ejecutable
Lo que aprenderás
  • Parameters and results
  • Returning a value and an error
  • Variadic functions
divide(a, b)
divide(10, 4)2.5, nil
divide(1, 0)0, "cannot divide by zero"

A result and an error

A function groups code under a name. Go functions can return several values, and the usual pattern is to return a result together with an error.

divide returns the result and an error; nil means there was no error. The underscore ignores a value you do not need. numbers ...int accepts any number of integers, and the named result total is returned by the bare return.

Puntos clave

  1. A function can return more than one value.
  2. nil means there was no error.
  3. _ ignores a value you do not need.

Ejemplo ejecutable de Go

Go
Ejecutar código →
main.go
package main

import (
	"errors"
	"fmt"
)

func area(width, height int) int {
	return width * height
}

func divide(a, b float64) (float64, error) {
	if b == 0 {
		return 0, errors.New("cannot divide by zero")
	}
	return a / b, nil
}

func sum(numbers ...int) (total int) {
	for _, n := range numbers {
		total += n
	}
	return
}

func main() {
	fmt.Println(area(4, 5))

	if result, err := divide(10, 4); err == nil {
		fmt.Println(result)
	}
	_, err := divide(1, 0)
	fmt.Println(err)

	fmt.Println(sum(1, 2, 3, 4))
}
Obtén un botón Run para este ejemplo Resultado de ejecutar el código
20
2.5
cannot divide by zero
10

Practica

Abre el ejemplo en el compilador online, cambia un valor o añade una línea y predice la salida antes de ejecutarlo. Después rompe el código a propósito y lee el mensaje del compilador.

¿Terminaste esta lección?

Márcala como aprendida para seguir tu progreso.

Siguiente: Fibonacci Sequence →

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos