2.3 KiB
title | localeTitle |
---|---|
Go Functions | Ir funciones |
Ir funciones
Una función toma cero o más parámetros de cualquier tipo, hace algo de lógica con ellos y puede devolver uno o más valores. La sintaxis de la función de Golang es:
func sum(parameter1 int64, parameter2 int64) int64 {
return parameter1+parameter2
}
Aquí, el nombre de la función es add
. Lleva a los parámetros, parameter1
y parameter2
de tipo int64
y devuelve otro int64, la suma de los dos parámetros.
Regreso
Una return
se alcanza un return
, la función sale sin ejecutar más código.
func sum(parameter1 int64, parameter2 int64) int64 {
return parameter1+parameter2
// Unreachable code
fmt.Printf("Don't print me")
}
Llamando a una función
La función anterior se llamaría así:
sum(4, 5)
El valor de esta expresión es 9.
Omitir tipo de parámetro
Si dos o más parámetros consecutivos son del mismo tipo, puede indicarse solo una vez.
function foo(x, y, z int64, name string) {
fmt.Printf("%d %d %d %s", x, y, z, name)
}
Aquí x
, y
, z
son de tipo int64
, y name
es una cadena.
Devolviendo múltiples valores
Una función puede devolver cero o más valores. Para no devolver nada, omita el tipo de retorno:
function helloWorld() {
fmt.Printf("Hello world!")
}
Para devolver un valor especifique su tipo:
function getHelloWorld() string {
return "Hello world!"
}
Para devolver más de un valor, especifique sus tipos, envueltos en ()
y separados por comas:
function getHelloWorldAndBestLanguage() (string, string) {
return "Hello world!", "Golang"
}
Para recibir estos valores, simplemente declare las variables separadas por comas como esta:
helloWorld, bestLanguage := getHelloWorldAndBestLanguage()
// helloWorld == "Hello world!"
// bestLanguage == "Golang"
Devoluciones desnudas
Puede nombrar los tipos de retorno para que no tenga que pasar la variable a la declaración de retorno:
func duplicate(s string) (first, second string) {
first = s
last = s
return
}
func main() {
fmt.Println(split("Hello world!")) // ("Hello world!", "Hello world!")
}