Go の呼び出された関数は、呼び出し元の関数のパラメーターにどのようにアクセスしますか?
Go で呼び出される関数は、関数パラメーターを通じて呼び出し元関数のパラメーターを取得できます。 Go では、パラメータを値または参照によって関数に渡すことができ、関数はパラメータを通じて呼び出し元から渡された値またはポインタを取得できます。パラメーターが値型の場合、関数内の操作はパラメーターのコピーに対して実行され、呼び出し元によって渡された元の値には影響しません。パラメーターがポインター型の場合、関数内の操作により、ポインターが指す元の値が変更されます。このようにして、関数は呼び出し側関数のパラメーターにアクセスして変更できるため、より柔軟な機能が可能になります。値型パラメータであってもポインタ型パラメータであっても、関数は呼び出し元からパラメータを通じて渡された値またはポインタを取得し、関数内で関連する操作を実行できます。
質問内容
参考コード https://go.dev/play/p/yig2b6dkcoc (ここにも貼り付けられています) を参照してください:
このコードと同じように、引数の順序は sort.slice() 関数には渡されませんが、sort パッケージのless() メソッドの呼び出しで適切に出力されます。
この関数を実装する属性は何ですか?
package main import ( "fmt" "sort" ) func main() { order := "abcd" s := "bca" fmt.Printf("ans: %v\n", customSortString(order, s)) } func customSortString(order string, s string) string { sort.Slice([]byte(s), func(a, b int) bool { fmt.Printf("order: %v\n", order) // <------ How does this work? order is not passed to sort.Slice() function. return s[a] < s[b] }) return "" }
解決策
https://www.php.cn/link/58b7483ba899e0ce4d97ac5eecf6fa99:
関数リテラルは クロージャ : 周囲の関数で定義された変数を参照できます。これらの変数は周囲の関数と関数リテラル間で共有され、アクセス可能な限り存続します。
以上がGo の呼び出された関数は、呼び出し元の関数のパラメーターにどのようにアクセスしますか?の詳細内容です。詳細については、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)

ホットトピック









OpenSSLは、安全な通信で広く使用されているオープンソースライブラリとして、暗号化アルゴリズム、キー、証明書管理機能を提供します。ただし、その歴史的バージョンにはいくつかの既知のセキュリティの脆弱性があり、その一部は非常に有害です。この記事では、Debian SystemsのOpenSSLの共通の脆弱性と対応測定に焦点を当てます。 Debianopensslの既知の脆弱性:OpenSSLは、次のようないくつかの深刻な脆弱性を経験しています。攻撃者は、この脆弱性を、暗号化キーなどを含む、サーバー上の不正な読み取りの敏感な情報に使用できます。

この記事では、プロファイリングの有効化、データの収集、CPUやメモリの問題などの一般的なボトルネックの識別など、GOパフォーマンスを分析するためにPPROFツールを使用する方法について説明します。

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

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

バックエンド学習パス:フロントエンドからバックエンドへの探査の旅は、フロントエンド開発から変わるバックエンド初心者として、すでにNodeJSの基盤を持っています...

Beegoormフレームワークでは、モデルに関連付けられているデータベースを指定する方法は?多くのBEEGOプロジェクトでは、複数のデータベースを同時に操作する必要があります。 Beegoを使用する場合...

この記事では、go.modを介してGOモジュールの依存関係の管理、仕様、更新、競合解決をカバーすることについて説明します。セマンティックバージョンや定期的な更新などのベストプラクティスを強調しています。
