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
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:
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.
func Sum(a, b int) int { ... } // esportata
func helper() { ... } // privata al packageFunciones como valores
Las funciones son valores de primera clase: puedes asignarlas, pasarlas y devolverlos. Profundizaremos en la lección sobre cierres.
op := sum // op ha tipo func(int, int) int
fmt.Println(op(2, 3)) // 5main y init: dos nombres especiales
func main()es el punto de entrada del paquetemain. 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
Defina una función sum(a, b int) int que devuelva a+b, luego llámela en main con (3, 4).
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
Defina saludo (cadena de nombre) (sin valor de retorno) que imprima 'ciao <nombre>'.
Mostrar pista
No hay tipo de retorno si la función no devuelve nada.
Solución disponible después de 3 intentos
¿Dónde va el tipo de parámetro en Go?
func f(? ?) {}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).
mainyinitson nombres reservados con una semántica especial.