Ключевое слово 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

Leave a Comment

Как использовать константы в Golang

Как использовать константы в Golang

Что такое Constant или Const в Golang? Вот что вам нужно знать об использовании констант в Go.

Нестабильные функции в Golang

Нестабильные функции в Golang

Вариативные функции в Go позволяют передавать функции переменное количество аргументов. Вот все, что вам нужно знать о volatile-функциях в Golang.

Именованные возвращаемые параметры в Golang

Именованные возвращаемые параметры в Golang

В Golang именованные возвращаемые параметры часто называются именованными параметрами. Golang позволяет именовать возвращаемые параметры или результаты функций в сигнатуре или определении функции.

Ключевые слова в Go

Ключевые слова в Go

Ключевое слово. Ключевые слова — это слова в языке, которые используются для обозначения какого-либо внутреннего процесса или представляют собой какое-либо предопределенное действие. Вот что вам нужно знать о ключевых словах в Golang.

Типы данных в Golang

Типы данных в Golang

Тип данных определяет тип данных, которые может содержать допустимая переменная Go. В языке Go типы делятся на четыре категории следующим образом:

Аргументы функций в Golang

Аргументы функций в Golang

Go поддерживает два основных способа передачи аргументов: передача по значению и передача по ссылке. Go по умолчанию использует передачу по значению.

Функция, возвращающая несколько значений в Golang

Функция, возвращающая несколько значений в Golang

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

Оператор Switch в Go

Оператор Switch в Go

В Golang, как и в большинстве других языков программирования, есть оператор switch. Вот как использовать оператор switch в Golang.

Случаи, которые следует знать при использовании операторов выбора в Golang

Случаи, которые следует знать при использовании операторов выбора в Golang

В этой статье мы узнаем, как использовать регистр по умолчанию, чтобы избежать взаимоблокировки. Но сначала давайте выясним, что такое случай взаимоблокировки при использовании команды select в Golang?

Анонимные структуры и поля в Golang

Анонимные структуры и поля в Golang

Анонимные структуры в Golang — это временные структуры без имен, используемые для одноразовых целей, в то время как анонимные поля допускают встраивание неименованных полей.

Как использовать Руну в Golang

Как использовать Руну в Golang

Что такое руны в языке Голанг? Как использовать руну в Golang? Статья даст вам ответ.

Как использовать операторы в Golang

Как использовать операторы в Golang

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

Идентификатор Void в Golang

Идентификатор Void в Golang

_(подчеркивание) в Golang называется пустым идентификатором. Идентификатор — определяемое пользователем имя компонентов программы, используемое для целей идентификации.

Как создать базовую программу на Golang

Как создать базовую программу на Golang

Привет, мир! это первая базовая программа на любом языке программирования. Вы можете написать эту первую программу на Golang, следуя инструкциям ниже.

Как установить Go на Windows

Как установить Go на Windows

Golang можно легко установить на Windows. Ниже приведено подробное пошаговое руководство по установке Golang на Windows.

Как исправить ошибку в 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, чтобы быстро восстановить бесперебойную командную работу — никаких технических навыков не требуется!

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

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

Откройте для себя простые пошаговые инструкции по отключению Microsoft Teams при запуске системы и повышению производительности ПК. Более быстрая загрузка, меньшее потребление ресурсов — идеально для пользователей Windows, стремящихся к плавной работе.

Как скачать Microsoft Teams для Mac и MacBook Air/Pro

Как скачать Microsoft Teams для Mac и MacBook Air/Pro

Узнайте самый простой способ загрузить Microsoft Teams для Mac, MacBook Air и MacBook Pro. Пошаговые инструкции, системные требования и советы по устранению неполадок для беспроблемной установки последней версии. Начните прямо сейчас!

Где найти папку установки Microsoft Teams на вашем компьютере

Где найти папку установки Microsoft Teams на вашем компьютере

Не можете найти папку установки Microsoft Teams на своем компьютере? Это пошаговое руководство покажет точные пути для новых и классических версий Teams, а также для установки на одного пользователя и на весь компьютер. Сэкономьте время на устранении неполадок!

Как присоединиться к собранию Microsoft Teams с помощью идентификатора и пароля

Как присоединиться к собранию Microsoft Teams с помощью идентификатора и пароля

Научитесь легко присоединяться к собраниям Microsoft Teams с помощью идентификатора и пароля на компьютере, мобильном устройстве или в веб-версии. Пошаговые инструкции со скриншотами для быстрого доступа — приглашение не требуется!

Как эффективно использовать фоновые изображения в Microsoft Teams

Как эффективно использовать фоновые изображения в Microsoft Teams

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