0Pricing
Go Academy · Lección

Fundamentos y firmas de funciones

Parámetros, tipos de retorno y convenciones de llamada

Fundamentos y firmas de funciones es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.

Definición de una función

En Go, las funciones se definen con la palabra clave func:

func greet(name string) string {
    return "Hello, " + name
}

Parámetros y argumentos

Los parámetros tienen tipo y se enumeran como pares name type. Varios parámetros del mismo tipo pueden compartir la anotación de tipo:

func add(x, y int) int {
    return x + y
}

func rect(w, h float64) float64 {
    return w * h
}

Funciones sin valor de retorno

Las funciones que no devuelven ningún valor simplemente omiten el tipo de retorno. Devuelven implícitamente cuando la ejecución llega al final:

func printBanner(title string) {
    fmt.Println("=====", title, "======")
}

Llamada a funciones

Llame a una función por su nombre, con paréntesis y los argumentos correspondientes:

result := add(3, 4)        // 7
fmt.Println(greet("Go"))   // Hello, Go
printBanner("Welcome")

Funciones como valores de primera clase

Las funciones son valores de primera clase en Go: pueden asignarse a variables y pasarse como argumentos:

apply := func(n int, f func(int) int) int {
    return f(n)
}
double := func(n int) int { return n * 2 }
fmt.Println(apply(5, double)) // 10

Tipos de función

Puede definir tipos de función con nombre para crear firmas más claras:

type Transform func(int) int

func applyAll(n int, fns []Transform) int {
    for _, f := range fns {
        n = f(n)
    }
    return n
}

Funciones recursivas

Go admite la recursividad. Tenga en cuenta la profundidad de la pila: las pilas de las goroutines de Go crecen dinámicamente, pero una recursividad sin límite sigue provocando un desbordamiento de pila:

func factorial(n int) int {
    if n <= 1 {
        return 1
    }
    return n * factorial(n-1)
}

Convenciones para nombrar funciones

Convenciones de nomenclatura de funciones en Go:

  • Use MixedCaps para funciones exportadas o mixedCaps para funciones no exportadas
  • Elija nombres breves y orientados a la acción: New, Get, Parse, Write
  • Evite GetX para getters sencillos; use simplemente X
  • Predicados booleanos: IsValid, HasPrefix

Función init()

Una función especial init() se ejecuta automáticamente cuando se carga el paquete, antes de main():

  • No recibe argumentos ni devuelve valores
  • Un paquete puede tener varias funciones init()
  • Úsela para configuraciones que se realizan una sola vez, como registrar drivers

Función frente a método

Una función no está asociada a ningún tipo. Un método tiene un receptor, como se explica en Estructuras y métodos. Ambos usan la palabra clave func:

// Function
func max(a, b int) int { ... }

// Method
func (c Counter) Value() int { ... }

Comprobación rápida

En Go, ¿puede una función devolver varios valores?

Resumen: fundamentos de las funciones

Las funciones de Go son expresivas y flexibles:

  • func name(params) returnType { }
  • Los parámetros del mismo tipo pueden compartir su anotación de tipo
  • Las funciones son valores de primera clase
  • Defina tipos de función para reutilizar firmas
  • Se admite la recursividad; init() se ejecuta al cargar el paquete

Siguiente tema: múltiples valores de retorno en profundidad.

Preguntas frecuentes

¿La lección «Fundamentos y firmas de funciones» es gratis?

Sí — el texto completo de «Fundamentos y firmas de funciones» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Fundamentos y firmas de funciones»?

Parámetros, tipos de retorno y convenciones de llamada Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Go Academy?

No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Fundamentos y firmas de funciones»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Go Academy?

Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Fundamentos y firmas de funciones
  2. Múltiples valores de retorno
  3. Funciones variádicas
  4. defer, funciones anónimas y cierres
← Volver a Go Academy