Saltar al contenido principal
eLearner.app
Módulo 3 · Lección 1 de 511/50 en el curso~10 min
Lecciones del módulo (1/5)

Firma y parámetros

En Go, las funciones se declaran con func. La sintaxis de la firma difiere. desde C/Java: el tipo va después del nombre del parámetro, separado por un espacio. Es una opción que se lee mejor en voz alta: en su lugar, "n de tipo int" de "int n".

Sintaxis básica

Go
func sum(a int, b int) int {
    return a + b
}

func greet(name string) {
    fmt.Println("ciao", name)
}

Una función sin valor de retorno simplemente omite el tipo de retorno.

Parámetros consecutivos del mismo tipo

Si varios parámetros consecutivos comparten el mismo tipo, puede declarar solo una vez en el último. Es idiomático y lo verás en todas partes:

Go
func sum(a, b int) int { return a + b }
func max3(a, b, c float64) float64 { /* ... */ }
func parse(s, sep string, limit int) []string { /* ... */ }

Funciones exportadas y no exportadas

En Go, la visibilidad está determinada por el nombre: identificadores que comienzan con una letra mayúscula se exportan (visibles desde otros paquetes), los demás son privados del paquete.

Go
func Sum(a, b int) int { ... }    // esportata
func helper() { ... }              // privata al package

Funciones como valores

Las funciones son valores de primera clase: puedes asignarlas, pasarlas y devolverlos. Profundizaremos en la lección sobre cierres.

Go
op := sum            // op ha tipo func(int, int) int
fmt.Println(op(2, 3)) // 5

main y init: dos nombres especiales

  • func main() es el punto de entrada del paquete main. Sin argumentos, sin valores de retorno.
  • func init() se llama automáticamente al iniciar el paquete (incluso múltiples veces si varios archivos definen uno). Útil para la configuración; Úselo con moderación.

Pruébalo

Ejercicio#go.m3.l1.e1
Intentos: 0Cargando...

Defina una función sum(a, b int) int que devuelva a+b, luego llámela en main con (3, 4).

Cargando editor...
Mostrar pista

Tipo compartido: `(a, b int)`. El tipo de retorno va DESPUÉS del paréntesis.

Solución disponible después de 3 intentos

Ejercicio#go.m3.l1.e2
Intentos: 0Cargando...

Defina saludo (cadena de nombre) (sin valor de retorno) que imprima 'ciao <nombre>'.

Cargando editor...
Mostrar pista

No hay tipo de retorno si la función no devuelve nada.

Solución disponible después de 3 intentos

Cuestionario#go.m3.l1.e3
Listo

¿Dónde va el tipo de parámetro en Go?

Go
func f(? ?) {}
Opciones de respuesta

Resumen

  • CÓDIGOPH0.
  • Escriba después del nombre; parámetros consecutivos del mismo tipo → declararlo solo una vez.
  • Inicial en mayúscula = exportado; minúscula = privado del paquete.
  • Las funciones son de primera clase (asignables, transitables).
  • main y init son nombres reservados con una semántica especial.