インターフェイスの要件を満たすために関数と型をどのように使用できるでしょうか?
Nov 06, 2024 pm 02:39 PMインターフェイスを実装する関数
質問:
インターフェイス内で関数と型はどのように相互作用しますか?
答え:
インターフェイスは、型の実装に必要なメソッドを定義します。以下に例を示します。
type Handler interface { ServeHTTP(*Conn, *Request) }
例 1: インターフェイスを実装するカスタム タイプ
type Counter int func (ctr *Counter) ServeHTTP(c *http.Conn, req *http.Request) { fmt.Fprintf(c, "counter = %d\n", ctr) ctr++ }
Counter タイプは、Handler インターフェイスを満たす ServeHTTP メソッドを実装します。
例 2: HandlerFunc の利用 (レシーバーとしての関数)
type HandlerFunc func(*Conn, *Request) func (f HandlerFunc) ServeHTTP(c *Conn, req *Request) { f(c, req) } var Handle404 = HandlerFunc(notFound)
ここで、HandlerFunc は Conn と Request を受け取り、何も返さない関数です。これにより、HandlerFunc を通じて ServeHTTP メソッドを追加することで、notFound などの関数をハンドラーとして使用できるようになります。この間接的な方法により、インターフェイスを柔軟に実装できます。
以上がインターフェイスの要件を満たすために関数と型をどのように使用できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

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

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

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

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

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

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

GOの実際のパフォーマンスを正確に反映するベンチマークを作成するにはどうすればよいですか?
