[ja] apply patch

This commit is contained in:
Shin Kojima
2014-09-21 23:24:10 +09:00
parent 00b1b60c2a
commit 4283e6bbcc

View File

@@ -41,7 +41,7 @@ Goがクライアントのリクエストを待ち受けるには以下のよう
ServeHTTP(ResponseWriter, *Request) // ルーティング実現器
}
Handlerはインターフェースですが、前の節の中`sayhelloName`関数特にServerHTTPというインターフェースを実装してはいませんでした。どうして追加できるのでしょうかもともとhttpパッケージの中では`HandlerFunc`という型定義ています。この型はデフォルトでServerHTTPインターフェースを実装しています。つまり、HandlerFunc(f)をコールして強制的にfをHandlerFunc型に型変換しているのです。このようにしてfはServerHTTPメソッドを持つことになります。
Handlerはインターフェースですが、前の節の中`sayhelloName`関数では特にServeHTTPというインターフェースを実装してはいませんでした。どうして追加できるのでしょうかもともとhttpパッケージの中では`HandlerFunc`という型定義されています。私達が定義した`sayhelloName`関数はまさにこのHandlerFuncがコールされた結果であり、この型はデフォルトでServeHTTPインターフェースを実装していることになります。つまり、HandlerFunc(f)をコールして強制的にfをHandlerFunc型に型変換しているのです。このようにしてfはServeHTTPメソッドを持つようになります。
type HandlerFunc func(ResponseWriter, *Request)
@@ -93,9 +93,9 @@ Handlerはインターフェースですが、前の節の中で`sayhelloName`
return
}
もともとこれはユーザのリクエストしたURLとルータの中に保存されているmapマッチングにって、このhandlerのServHTTPインターフェースコールすることで目的の関数を実行することができます。
もともとこれはユーザのリクエストしたURLとルータの中に保存されているmapに従ってマッチングしています。マッチングにって保存されているhandlerが返されるにあたり、このhandlerのServeHTTPインターフェースコールされ、目的の関数を実行することができます。
上の紹介を通て、ルーティングの全体プロセスを理解しました。これはHandlerインターフェースです。つまり外部ルータHandlerインターフェースを実装するだけで良く、自分自身で実装したルータのServHTTPの中でカスタム定義されたルータ機能を実することができます。
上の紹介を通て、私達はルーティングの全体プロセスを理解しました。Goは実は外部で実装されたルータをサポートしています。`ListenAndServe`の第2引数が外部のルータを設定する為に用いられます。これはHandlerインターフェースのひとつで、外部ルータHandlerインターフェースを実装し、そのServeHTTPカスタム定義のルーティング機能を実することができます。
下のコードを通して、自分自身で簡単なルータを実装してみます。