Aplazar la palabra clave en Golang

En Go, las declaraciones de diferimiento retrasan la ejecución de una función o método o un método anónimo hasta que las funciones cercanas regresen. En otras palabras, los argumentos para diferir funciones o métodos se evalúan inmediatamente, pero no se ejecutan hasta que las funciones cercanas regresan. Puede crear un método diferido, una función o una función anónima utilizando la palabra clave defer.

Aplazar la palabra clave en Golang

Sintaxis:

// Hàm
defer func func_name(parameter_list Type)return_type{
// Code
}

// Phương thức
defer func (receiver Type) method_name(parameter_list){
// Code
}

defer func (parameter_list)(return_type){
// code
}()

Nota importante:

  • En el lenguaje Go, se permiten múltiples declaraciones defer en el mismo programa y se ejecutan en orden LIFO (último en entrar, primero en salir) como se muestra en el Ejemplo 2.
  • En las declaraciones de diferimiento, los argumentos se evalúan cuando se ejecuta la declaración de diferimiento, no cuando se la llama.
  • Las declaraciones de aplazamiento se utilizan a menudo para garantizar que los archivos se cierren cuando finaliza su necesidad, o para cerrar canales, o para detectar problemas en el programa.

Ahora veamos un ejemplo para entenderlo mejor.

Ejemplo 1:

// Chương trình Go minh họa
// khái niệm của lệnh defer
package main

import "fmt"

// Các hàm
func mul(a1, a2 int) int {

	res := a1 * a2
	fmt.Println("Result: ", res)
	return 0
}

func show() {
	fmt.Println("Hello!, Quantrimang.com")
}

// Hàm chính
func main() {

	// Gọi hàm mul() 
	// Tại đây hàm mul hoạt động
	// như một hàm bình thường
	mul(23, 45)

	// Gọi hàm mul()
	// Dùng từ khóa defer 
	// Hàm the mul() 
	// là hàm defer
	defer mul(23, 56)

	// Gọi hàm show() 
	show()
}

Resultado:

Result:  1035
Hello!, Quantrimang.com
Result:  1288

Explicación: En el ejemplo anterior, tenemos dos funciones llamadas mul() y show() . Mientras que la función show() se llama normalmente en la función main() , la función mul() se llama de dos maneras diferentes:

  • Primero, llamamos a la función mul normalmente (sin la palabra clave defer), es decir, mul(23, 45) y se ejecuta cuando se llama a la función (Salida: Resultado: 1035).
  • En segundo lugar, llamamos a la función mul() como una función defer usando la palabra clave defer, es decir, defer mul(23, 56) y se ejecuta (Salida: Resultado: 1288) cuando todos los métodos circundantes retornan.

Ejemplo 2:

// Minh họa chương trình Go
// dùng nhiều lệnh defer, để minh họa chính sách LIFO 
package main

import "fmt"

// Các hàm
func add(a1, a2 int) int {
	res := a1 + a2
	fmt.Println("Result: ", res)
	return 0
}

// Hàm chính
func main() {

	fmt.Println("Start")

	// Nhiều lệnh defer
	// Triển khai theo thứ tự LIFO 
	defer fmt.Println("End")
	defer add(34, 56)
	defer add(10, 10)
}

Resultado:

Start
Result:  20
Result:  90
End

Dejar un comentario

Cómo tirar un ordenador en Bilbao: dónde llevarlo y qué hacer con tus datos

Cómo tirar un ordenador en Bilbao: dónde llevarlo y qué hacer con tus datos

¿Tienes un ordenador viejo en Bilbao? Descubre dónde entregarlo, cuándo puede recogerlo una tienda, cómo proteger tus datos y qué opción conviene si aún funciona.

Cómo tirar un frigorífico en Almería: opciones seguras y pasos

Cómo tirar un frigorífico en Almería: opciones seguras y pasos

Descubre cómo tirar un frigorífico en Almería: Punto Limpio, retirada 1x1 al comprar otro, preparación, transporte y errores que debes evitar.

ITV desfavorable: cuánto tiempo tienes para reparar el coche y volver a inspección

ITV desfavorable: cuánto tiempo tienes para reparar el coche y volver a inspección

Si la ITV sale desfavorable, el plazo máximo para reparar y volver es de dos meses. Te explicamos qué puedes hacer mientras tanto y qué ocurre si te retrasas.

Cómo tirar un edredón en Terrassa

Cómo tirar un edredón en Terrassa

¿Dónde tirar un edredón en Terrassa? Descubre por qué no va al contenedor naranja y cómo consultar el punto limpio adecuado.

Cómo tirar un frigorífico en Elche: opciones, costes y qué conviene comprobar

Cómo tirar un frigorífico en Elche: opciones, costes y qué conviene comprobar

Descubre cómo tirar un frigorífico en Elche: ecoparque, recogida de voluminosos o entrega al vendedor, con ventajas, límites y consejos prácticos.

Cómo tirar una bombona de gas en Málaga: devolución segura, fugas y punto limpio

Cómo tirar una bombona de gas en Málaga: devolución segura, fugas y punto limpio

Guía práctica para deshacerse de una bombona de butano o propano en Málaga: devolución al proveedor, qué hacer si tiene gas o fuga y cuándo consultar el punto limpio.

Cómo tirar una lavadora en Alcalá de Henares: recogida, Punto Limpio y alternativas

Cómo tirar una lavadora en Alcalá de Henares: recogida, Punto Limpio y alternativas

Guía actualizada para deshacerse de una lavadora en Alcalá de Henares: recogida municipal gratuita, Punto Limpio y retirada al comprar una nueva.

Cómo tirar una batería de litio en Madrid: puntos limpios y precauciones

Cómo tirar una batería de litio en Madrid: puntos limpios y precauciones

Descubre cómo tirar una batería de litio en Madrid: qué punto limpio elegir, cómo transportar una batería intacta y qué hacer si está hinchada o es de un vehículo eléctrico.

Cómo tirar un edredón en Barcelona: opciones y errores que debes evitar

Cómo tirar un edredón en Barcelona: opciones y errores que debes evitar

Descubre cómo tirar un edredón en Barcelona: donación, recogida textil, Puntos Verdes y qué hacer si está húmedo, roto o contaminado.

Cómo tirar un sofá en Terrassa sin dejarlo mal: recogida, deixalleria y señales de que lo has hecho bien

Cómo tirar un sofá en Terrassa sin dejarlo mal: recogida, deixalleria y señales de que lo has hecho bien

Cómo tirar un sofá en Terrassa: cuándo llamar a Eco-Equip, cómo dejarlo para la recogida, cuándo usar Can Barba o Can Casanovas y qué errores evitar.