Funciones en Go (Golang) | audacia
Una función en Go (Golang) es un bloque de código reutilizable que realiza una tarea específica.
Las funciones son una parte fundamental de los programas que escribimos. Se pueden definir e invocar como en muchos otros lenguajes de programación, y también promueven la modularidad y legibilidad de nuestro código. En esta publicación, analizaremos de cerca las funciones y exploraremos algunas de las formas en que se pueden usar.
sintaxis
Aquí está la firma de una función:
func <name>(<parameters>) <return type> {
// Body of the function
}
Las declaraciones de funciones comienzan con el func
palabra clave, seguida de una nombre para la función, entonces cualquier separado por comas ajustesentonces el tipo de datos de la función valor de retorno (Si alguna).
Dentro del cuerpo de la función, podemos incluir cualquier lógica personalizada que queramos. Tenga en cuenta que, por convención, los cuerpos de funciones deben permanecer relativamente cortos y «solo hacer una cosa».
Aquí hay un ejemplo de una función que toma dos enteros como entrada y devuelve su suma:
package main
import "fmt"
func sum(x, y int) int {
return x + y
}
func main() {
fmt.Println(sum(41, 10)) // Output: 51
}
En el ejemplo anterior, la función sum
aceptar dos parámetros del usuario: x
y y
ambos de tipo int
. Entonces cuando x + y
se evalúa, la función devuelve un valor de tipo int
.
Tenga en cuenta que también definimos un main
función, una función sin parámetros y sin valor de retorno. Esta función sirve como el «punto de entrada» de un programa Go. Eso es el main
La función es lo que se ejecuta cuando ejecuta un programa Go. Como tal, cuando se ejecuta el programa anterior, el main
función invoca sum(41, 10)
e impresiones 51
a la consola
Las funciones no pueden tener parámetros
Tenga en cuenta que mientras que las funciones pueden aceptar cualquier número de parámetros (como se ve con el sum
función), tener cualquier parámetro de entrada es completamente opcional (como hemos visto con el main
función).
Las funciones sin parámetros son útiles para los casos en los que desea realizar tareas específicas que no requieren ninguna entrada externa, o cuando las entradas pueden ser determinadas automáticamente por la propia función. Por ejemplo, puede escribir una función para obtener la hora actual:
package main
import (
"fmt"
"time"
)
func getCurrentTime() {
time := time.Now()
fmt.Println("The current time is: ", time)
}
func main() {
getCurrentTime()
}
También puede escribir una función que simplemente imprima un mensaje fijo:
package main
import "fmt"
func greeting() {
fmt.Println("Hello world!")
}
func main() {
greeting()
}
En cada uno de estos ejemplos, el nombre de la función va seguido de paréntesis vacíos, lo que indica que la función no acepta ningún parámetro.
Las funciones pueden tener múltiples valores de retorno
En los ejemplos anteriores, hemos visto funciones con valores de retorno cero (es decir, getCurrentTime
y greeting
), así como una función con un único valor de retorno (es decir, sum
). Go también tiene soporte incorporado para que una función tenga múltiple valores de retorno. Considere el siguiente ejemplo:
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("divided by zero")
}
return a / b, nil
}
func main() {
fmt.Println(divide(8, 2))
fmt.Println(divide(10, 0))
}
Aquí, la función divide
aceptar dos float64
valores como entrada: a
y b
. Como resultado de las operaciones en el cuerpo de la función, la función devuelve dos valores: el resultado de la división, así como un error (si el segundo parámetro es cero). Como tal, cuando divide(8, 2)
se evalúa, vemos 4 <nil>
impreso en la consola. Y cuando divide(10, 0)
se evalúa, vemos 0 divided by zero
.
Al devolver múltiples valores, las funciones pueden proporcionar más información y contexto al usuario que invoca la función, lo que puede ayudar con el manejo de errores y el procesamiento de datos.
Más información sobre las funciones
Las funciones son una característica poderosa del lenguaje de programación Go. Permiten a los desarrolladores encapsular la lógica, definir cualquier parámetro de entrada del usuario y devolver muchos valores. Las funciones son una característica esencial para cualquier lenguaje de programación, y Go proporciona una implementación robusta y flexible. Para obtener más información sobre las funciones y cómo aprovecharlas en los programas Go que escribe, inscríbase en el curso Golang de Udacity.