Go言語のfnとは何ですか?
Go 言語では、fn は特にキーワード func を指します。関数の基本コンポーネントは、キーワード func、関数名、パラメータ リスト、戻り値、関数本体、および return ステートメントです。各プログラムには多くの関数が含まれています、関数はコードの基本ブロックであり、単一または関連する関数を実装するために使用される、編成された再利用可能なコード セグメントです。
このチュートリアルのオペレーティング システム: Windows 10 システム、GO バージョン 1.20、Dell G3 コンピューター
Go 言語の関数宣言 (関数定義 )
関数は、単一関数または関連関数を実装するために使用される、整理された再利用可能なコード セグメントであり、アプリケーションのモジュール性とコードの再利用を向上させることができます。 Go言語では通常関数、匿名関数、クロージャがサポートされており、設計から最適化・改良され、より使いやすくなりました。
関数はコード実行の論理構造を構成します。Go 言語では、関数の基本コンポーネントは次のとおりです: キーワード func、関数名、パラメータ リスト、戻り値、関数本体、return ステートメント。各プログラムには多くの要素が含まれます。関数と関数はコードの基本ブロックです。
Go 言語はコンパイル言語であるため、関数を記述する順序は関係ありません。可読性の要件を考慮すると、main() 関数を先頭に記述するのが最善です。ファイルと他の関数は、特定の論理順序 (関数が呼び出される順序など) で書き込みに従います。
複数の関数を記述する主な目的は、多くのコード行を必要とする複雑な問題を、解決するための一連の単純なタスクに分解することです。さらに、同じタスク (関数) を複数回呼び出すことができるため、コードの再利用 (実際、優れたプログラムは、DRY 原則、つまり Don'trepeat Yourself (自分自身を繰り返さない) に細心の注意を払っています。これは、特定のタスクを実行するコードはプログラム内で 1 回しか出現できないことを意味します) 。
関数は、コード ブロックの最後の行または return ステートメントの前に到達すると終了します。return ステートメントには 0 個以上のパラメーターを含めることができます。これらのパラメーターは呼び出し元の戻り値として使用されます。シンプル return ステートメントは、for の無限ループを終了したり、コルーチン (ゴルーチン) を終了したりするためにも使用できます。
Go 言語関数は宣言する必要はありません
Go 言語関数は第一級市民であり、変数と同様に特定の変数に代入できます (その理由は匿名関数の出現のため)
関数は第一級市民であるため、過去に変数の定義に使用されたすべての形式を関数型の変数の定義に使用できます
var 变量名称 函数类型 var 变量名称 函数类型 = 匿名函数 var 变量名称 = 匿名函数 变量名称 := 匿名函数 var( var 变量名称 = 匿名函数 )
fn = func (a,b int){ return a + b } fn()
Go 言語での関数変数の定義は C 言語とは異なります。
形式: func 関数名 (パラメータ リスト) 戻り値リスト{}
Go 言語での関数の戻り値は、次の値を超えることができます。 1 つの
func test(a,b int) (a,b int){ return a,b }
Go 言語関数の戻り値は書き込み型のみですが、変数型を記述することもできます
書き込み専用型: func test(a,b int) (int){} 注: 書き込み専用型、戻り値型 int の両側の括弧は省略可能
変数プラス型: func test(a,b int) (a,b int){}
注: 変数型の形式を記述する場合、return は戻り値を追加する必要がなく、コードブロック内で自動的に を見つけます。 Go 言語の仮パラメータリストまたは戻り値リストの型が b
func test(a,b int) (a,b int){ a = 100 b = 99 return //自动返回100,99}
を次のように定義できます。 2 つの関数は同じメソッドを表します
func test(a,b int) (a,b int){return a,b} func test2(a int,b int) (int,int){return a,b}
匿名関数
匿名関数は名前のない関数です。定義後すぐに使用する必要があります。そうでない場合はエラーが報告されます。匿名関数は通常 1 回のみ使用されます。これらは第一級市民であるため、関数の仮パラメータまたは戻り値として使用できます関数の #関数として 仮パラメータfn := func (a,b int) int { return a + b } //此时调用test函数用来计算a+b可以这么写 res := test(a,b,fn) func test(a,b int,method func(int,int) int) func() { return method(a,b) }
//此时调用test函数用来计算a+b可以这么写 res := test(a,b,func (a,b int) int { return a + b }) func test(a,b int,method func(int,int) int) func() { return method(a,b) }
fn := test() fn()//打印匿名函数 func test() func() { return func() { fmt.Println("匿名函数") } }
fn := test()//test函数也被称为迭代器 fn() //2 fn() //3 fn() //4 func test() func(){ x := 1 return func (){ x++ println(x) } }
- コード領域1 つのアドレスに対応する 3 つの関数のコードを格納します。 #変数 fn を定義し、無名関数のアドレスを fn に渡します。
- ##ストレージ スペースを開くための関数テスト
#num、value、method、res のストレージ スペースをオープンします。メソッドは、渡された関数のアドレスを保存します。
関数を実行すると、メソッドは匿名関数のアドレスを保存します。メソッドが実行されると、記憶領域が開かれ、a と b の値が保存されます。関数終了後の値は、 res に返され、メソッドのストレージ領域が解放されます。
Res が出力され、test 関数も解放され、使用後に fn も解放されます
以上がGo言語のfnとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

VSCODEユーザーのGolang Generic Function Typeの制約の自動削除は、VSCODEを使用してGolangコードを書くときに奇妙な問題に遭遇する可能性があります。いつ...

マルチプロセスのログライティングの並行性セキュリティの問題を効率的に処理します。複数のプロセスが同じログファイルを同時に書き込みます。並行性が安全で効率的であることを確認する方法は?これは...

GoLandを使用する場合のGolandのカスタム構造タグの問題に関して、Go Language Developmentに使用する場合、いくつかの構成の問題に遭遇することがよくあります。それらの1つは...

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

Golangで機能をバックグラウンドランニング、停止、リロードする方法は?プログラミングプロセス中に、バックグラウンド操作を実装して停止する必要があることがよくあります...