ServeHTTP について: このコードはどのように機能しますか?
Go では、カスタム型に ServeHTTP メソッドを実装すると、その型はハンドラー インターフェイス。HTTP ハンドラーの作成に不可欠な部分です。これにより、カスタム タイプで受信 HTTP リクエストを処理できるようになります。
問題のコードを見てみましょう:
package main import ( "fmt" "net/http" ) type foo int func (m foo) ServeHTTP(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Some text") } func main() { var bar foo http.ListenAndServe(":8080", bar) }
どのように動作するのですか?
ServeHTTP 関数にはどのようにアクセスしますか?
ServeHTTP 関数には、 foo のカスタム タイプでの Handler インターフェイスの実装。 ServeHTTP を実装することにより、foo は HTTP リクエストを処理する準備ができていることを示し、HTTP パッケージはそれを有効なハンドラーとして認識します。
HandlerFunc
HandlerFunc タイプとその関連関数syntax は、foo のようなカスタム タイプを作成せずに、匿名関数を HTTP ハンドラーとして簡単に定義できるようにするヘルパーです。 HandlerFunc ServeHTTP メソッドは、適切な引数を指定して匿名関数を呼び出すだけです。
本質的に、このコードは、ServeHTTP メソッドを実装することで、カスタム タイプが HTTP リクエストを処理できるようにする方法を示しています。ネットワーク ポートでのリッスンを担当するサーバーが、これらのハンドラーに受信リクエストが送信されます。
以上がGo の「ServeHTTP」メソッドはどのようにしてカスタム HTTP ハンドラーを有効にするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。