Ключевое слово Defer в Golang

В Go операторы defer задерживают выполнение функции, метода или анонимного метода до тех пор, пока не вернутся близлежащие функции. Другими словами, аргументы для отложенных функций или методов оцениваются немедленно, но они не выполняются до тех пор, пока не вернутся близлежащие функции. Вы можете создать отложенный метод, функцию или анонимную функцию, используя ключевое слово defer.

Ключевое слово Defer в Golang

Синтаксис:

// 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
}()

Важное примечание:

  • В языке Go допускается использование нескольких операторов defer в одной программе, и они выполняются в порядке LIFO (Last-In, First-Out), как показано в примере 2.
  • В операторах defer аргументы оцениваются при выполнении оператора defer, а не при его вызове.
  • Операторы Defer часто используются для обеспечения закрытия файлов, когда в них отпадает необходимость, или для закрытия каналов, или для выявления проблем в программе.

Теперь давайте рассмотрим пример, чтобы лучше понять.

Пример 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()
}

Результат:

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

Пояснение: В приведенном выше примере у нас есть две функции с именами mul() и show() . В то время как функция show() обычно вызывается в функции main() , функция mul() вызывается двумя разными способами:

  • Сначала мы вызываем функцию mul обычным образом (без ключевого слова defer), т. е. mul(23, 45), и она выполняется при вызове функции (Вывод: Результат: 1035).
  • Во-вторых, мы вызываем функцию mul() как функцию defer, используя ключевое слово defer, т. е. defer mul(23, 56), и она выполняется (Вывод: Результат: 1288), когда все окружающие методы возвращаются.

Пример 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)
}

Результат:

Start
Result:  20
Result:  90
End

Оставить комментарий

Как исправить ошибку в Microsoft Teams: пошаговое руководство по работе с Teams

Как исправить ошибку в Microsoft Teams: пошаговое руководство по работе с Teams

Возникли проблемы с ошибкой в ​​руководстве по использованию Microsoft Teams? Узнайте о проверенных пошаговых способах её быстрого устранения. Очистка кэша, обновление и многое другое для беспроблемного начала работы. Работает на последних версиях!

Как исправить ошибки воспроизведения мультимедиа в Microsoft Teams в 2026 году

Как исправить ошибки воспроизведения мультимедиа в Microsoft Teams в 2026 году

Устали от ошибок воспроизведения мультимедиа в Microsoft Teams, которые портят ваши встречи в 2026 году? Следуйте нашему пошаговому руководству от экспертов, чтобы быстро устранить неполадки со звуком, видео и обменом файлами — никаких технических навыков не требуется. Вас ждет бесперебойное сотрудничество!

Устранение неполадок с настройками прокси-сервера Microsoft Teams.

Устранение неполадок с настройками прокси-сервера Microsoft Teams.

Возникли проблемы с ошибкой прокси-сервера Microsoft Teams? Ознакомьтесь с проверенными шагами по устранению неполадок с настройками прокси-сервера Microsoft Teams. Очистите кэш, настройте параметры прокси-сервера и вернитесь к бесперебойным звонкам за считанные минуты с помощью нашего руководства от экспертов.

Как исправить ошибки синхронизации в Microsoft Teams Task Management

Как исправить ошибки синхронизации в Microsoft Teams Task Management

Устали от ошибок синхронизации задач в Microsoft Teams, которые мешают вашей работе? Следуйте нашим пошаговым инструкциям, чтобы восстановить бесперебойную синхронизацию задач между Teams, Planner и To Do. Быстрые решения для мгновенного облегчения!

Где находятся ключи реестра Microsoft Teams в Windows 11?

Где находятся ключи реестра Microsoft Teams в Windows 11?

Найдите точное расположение ключей реестра Microsoft Teams в Windows 11. Пошаговое руководство по поиску, доступу и безопасному изменению этих ключей для оптимальной производительности и устранения неполадок. Незаменимо для ИТ-специалистов и энтузиастов Teams.

Как очистить кэш Microsoft Teams для устранения проблем с производительностью

Как очистить кэш Microsoft Teams для устранения проблем с производительностью

Проблемы с медленной работой Microsoft Teams? Узнайте, как пошагово очистить кэш Microsoft Teams, чтобы устранить проблемы с производительностью, задержки, сбои и повысить скорость работы на Windows, Mac, в веб-версии и на мобильных устройствах. Быстрые и эффективные решения!

Как исправить ошибку Вкладка Wiki в Microsoft Teams не загружается

Как исправить ошибку Вкладка Wiki в Microsoft Teams не загружается

Возникла проблема с загрузкой вкладки Wiki в Microsoft Teams? Узнайте о проверенных пошаговых решениях, которые помогут быстро устранить проблему, восстановить вкладки Wiki и без лишних хлопот повысить производительность команды.

Где находится Microsoft Teams в Outlook? Как найти отсутствующий значок.

Где находится Microsoft Teams в Outlook? Как найти отсутствующий значок.

Раздражает отсутствие значка Microsoft Teams в Outlook? Узнайте, где именно его найти, почему он исчезает, и проверенные шаги по его восстановлению для беспроблемных встреч. Обновлено для последних версий!

Почему я не вижу комнаты для обсуждений в своей встрече Teams?

Почему я не вижу комнаты для обсуждений в своей встрече Teams?

Разочарованы отсутствием комнат для обсуждений в вашей встрече Teams? Узнайте о главных причинах, по которым вы не видите комнаты для обсуждений в Teams, и следуйте нашим пошаговым инструкциям, чтобы они заработали за считанные минуты. Идеально подходит как для организаторов, так и для участников!

Как исправить ошибку 1200 в Microsoft Teams на телефоне (iOS/Android)

Как исправить ошибку 1200 в Microsoft Teams на телефоне (iOS/Android)

Устали от ошибки Microsoft Teams 1200, которая прерывает ваши телефонные звонки? Узнайте о быстрых пошаговых решениях для iOS и Android, чтобы быстро восстановить бесперебойную командную работу — никаких технических навыков не требуется!