Merge commit '968ebb9c76d4838dc383062de450f1261b635cee' into ja

This commit is contained in:
Shin Kojima
2014-09-21 23:10:17 +09:00

View File

@@ -41,7 +41,7 @@ Go在等待客户端请求里面是这样写的
ServeHTTP(ResponseWriter, *Request) // 路由实现器
}
Handler是一个接口但是前一小节中的`sayhelloName`函数并没有实现ServeHTTP这个接口为什么能添加呢原来在http包里面还定义了一个类型`HandlerFunc`,我们定义的函数`sayhelloName`就是这个HandlerFunc调用之后的结果这个类型默认就实现了ServeHTTP这个接口即我们调用了HandlerFunc(f),强制类型转换f成为HandlerFunc类型这样f就拥有了ServHTTP方法。
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调用这个handler的ServHTTP接口就可以执行到相应的函数了。
原来他是根据用户请求的URL和路由器里面存储的map去匹配的当匹配到之后返回存储的handler调用这个handler的ServeHTTP接口就可以执行到相应的函数了。
通过上面这个介绍我们了解了整个路由过程Go其实支持外部实现的路由器 `ListenAndServe`的第二个参数就是用以配置外部路由器的它是一个Handler接口即外部路由器只要实现了Handler接口就可以,我们可以在自己实现的路由器的ServHTTP里面实现自定义路由功能。
通过上面这个介绍我们了解了整个路由过程Go其实支持外部实现的路由器 `ListenAndServe`的第二个参数就是用以配置外部路由器的它是一个Handler接口即外部路由器只要实现了Handler接口就可以,我们可以在自己实现的路由器的ServeHTTP里面实现自定义路由功能。
如下代码所示,我们自己实现了一个简易的路由器