Golangのdeferキーワード

Go では、defer ステートメントは、近くの関数が返されるまで関数またはメソッドまたは匿名メソッドの実行を遅延します。つまり、defer 関数またはメソッドへの引数はすぐに評価されますが、近くの関数が返されるまで実行されません。 defer キーワードを使用して、遅延メソッド、関数、または匿名関数を作成できます。

Golangのdeferキーワード

構文:

// 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 ステートメントが許可され、例 2 に示すように LIFO (Last-In, First-Out) 順序で実行されます。
  • 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()という 2 つの関数があります。show()関数は通常main()関数内で呼び出されますが、mul()関数は次の 2 つの異なる方法で呼び出されます。

  • まず、mul 関数を通常通り (defer キーワードなしで) 呼び出します (mul(23, 45))。関数が呼び出されると、それが実行されます (出力: 結果: 1035)。
  • 次に、defer キーワードを使用して mul() 関数を 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の予期しないダウンロードエラーを修正する方法

Microsoft Teamsの予期しないダウンロードエラーを修正する方法

Microsoft Teamsのダウンロードエラー「予期せぬエラー」でワークフローが滞っていませんか?専門家によるステップバイステップガイドと、クイックフィックスと高度なヒントで、すぐに問題を解決できます。再インストールは不要です!

Teams 会議でブレイクアウト ルームが表示されないのはなぜですか?

Teams 会議でブレイクアウト ルームが表示されないのはなぜですか?

Teams 会議でブレイクアウトルームが表示されなくて困っていませんか?Teams でブレイクアウトルームが表示されない主な原因を解説します。ステップバイステップの解決方法に従って、数分でスムーズに機能するようにしましょう。主催者にも参加者にも最適です!

Microsoft Teams OneDriveのファイル同期エラーの解決

Microsoft Teams OneDriveのファイル同期エラーの解決

Microsoft Teams OneDriveのファイル同期エラーにうんざりしていませんか?ステップバイステップガイドに従って、Microsoft Teams OneDriveのファイル同期エラーを素早く解決しましょう。Teamsチャンネルでのスムーズな共同作業に役立つ実証済みの修正プログラムをご用意しています。今すぐエラーのないファイル同期を実現しましょう!

Microsoft Teams のハードエラーを修正する方法(2026 レジストリ修正)

Microsoft Teams のハードエラーを修正する方法(2026 レジストリ修正)

Microsoft Teamsがハードエラーでクラッシュするのにうんざりしていませんか? わずか数分で解決できる、実績のある2026レジストリ修正プログラムを入手しましょう。ステップバイステップガイド、スクリーンショット、そして永続的な問題解決のためのヒントをご紹介します。最新バージョンで動作します!

Microsoft Teamsチュートリアルヘルプエラーのトラブルシューティング

Microsoft Teamsチュートリアルヘルプエラーのトラブルシューティング

Microsoft Teamsチュートリアルヘルプのエラーでお困りですか?このよくある問題に対する、実証済みのステップバイステップの解決策をご覧ください。キャッシュをクリアし、Teamsを更新するなど、すぐにシームレスなコラボレーションを取り戻しましょう!

Microsoft Teams エラーのトラブルシューティング: 最初に確認すべきこと

Microsoft Teams エラーのトラブルシューティング: 最初に確認すべきこと

Microsoft Teamsでエラーが発生していますか?このMicrosoft Teamsのトラブルシューティングガイドでは、エラーを迅速に解決するための最初のチェックポイントをステップバイステップでご紹介します。接続、キャッシュ、アップデートに関するクイックフィックスで、スムーズなチャットを再開できます。

Microsoft Teams アドインが Outlook に表示されないのはなぜですか?

Microsoft Teams アドインが Outlook に表示されないのはなぜですか?

Outlook に Microsoft Teams アドインが表示されなくて困っていませんか?主な原因と簡単なステップバイステップの修正方法をご紹介します。Teams と Outlook のシームレスな連携を簡単に復元できます。最新バージョンでご利用いただけます。

公共Wi-FiでのMicrosoft Teamsネットワークエラーの解決方法

公共Wi-FiでのMicrosoft Teamsネットワークエラーの解決方法

公共Wi-FiでMicrosoft Teamsのネットワークエラーに悩まされていませんか?VPNの調整、ポートチェック、キャッシュクリアなどの即時修正で、通話や会議をスムーズに復旧できます。ステップバイステップガイドですぐに問題を解決できます。

Microsoft Teams のステータスが「離席中」のままになっているのはなぜですか?

Microsoft Teams のステータスが「離席中」のままになっているのはなぜですか?

Microsoft Teamsのステータスが「離席中」のままになって困っていませんか?アイドルタイムアウトや電源設定など、よくある原因と、すぐに「対応可能」に戻すためのステップバイステップの修正方法をご紹介します。最新のTeams機能にアップデートしました。

Microsoft Teams のようこそ画面の起動ループのトラブルシューティング

Microsoft Teams のようこそ画面の起動ループのトラブルシューティング

Microsoft Teamsのようこそ画面の起動ループに悩まされていませんか?Microsoft Teamsのようこそ画面の起動ループを解消するための実証済みのトラブルシューティング手順をお試しください。キャッシュのクリア、アプリのリセット、再インストールが可能です。数分でシームレスなコラボレーション環境を取り戻せます!