From bf55d4af5245154574930a286ec80073a849c292 Mon Sep 17 00:00:00 2001 From: Oling Cat Date: Thu, 1 Nov 2012 16:59:12 +0800 Subject: [PATCH 1/2] fixed again --- 3.4.md | 6 +++--- 7.1.md | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/3.4.md b/3.4.md index 0c8f3d97..df8baea1 100644 --- a/3.4.md +++ b/3.4.md @@ -109,7 +109,7 @@ handler是一个接口,但是前一小节中的`sayhelloName`函数并没有 - 首先调用Http.HandleFunc - 按顺序做了几件事: + 按顺序做了几件事: 1. 调用了DefaultServerMux的HandleFunc @@ -119,7 +119,7 @@ handler是一个接口,但是前一小节中的`sayhelloName`函数并没有 - 其次调用http.ListenAndServe(":9090", nil) - 按顺序做了几件事情: + 按顺序做了几件事情: 1. 实例化Server @@ -143,7 +143,7 @@ handler是一个接口,但是前一小节中的`sayhelloName`函数并没有 mux.handler(r).ServeHTTP(w, r) - 11 选择handler: + 11. 选择handler: A. 判断是否有路由能满足这个request(循环遍历ServerMux的muxEntry) diff --git a/7.1.md b/7.1.md index 63e66cbf..ca7096fd 100644 --- a/7.1.md +++ b/7.1.md @@ -204,13 +204,13 @@ Go语言的反射机制,可以利用这些tag信息来将来自XML文件中的 - tag中含有`"omitempty"`,如果该字段的值为空值那么该字段就不会被输出到XML,空值包括:false、0、nil指针或nil接口,任何长度为0的array, slice, map或者string - tag中含有`"a>b>c"`,那么就会循环输出三个元素a包含b,b包含c,例如如下代码就会输出 - FirstName string `xml:"name>first"` - LastName string `xml:"name>last"` + FirstName string `xml:"name>first"` + LastName string `xml:"name>last"` - - Asta - Xie - + + Asta + Xie + 上面我们介绍了如何使用Go语言的xml包来编/解码XML文件,重要的一点是对XML的所有操作都是通过struct tag来实现的,所以学会对struct tag的运用变得非常重要,在文章中我们简要的列举了如何定义tag。更多内容或tag定义请参看相应的官方资料。 From 1d60cc9896a54effc82af53c323e7c9431b9b63b Mon Sep 17 00:00:00 2001 From: Oling Cat Date: Thu, 1 Nov 2012 17:03:16 +0800 Subject: [PATCH 2/2] fixed again --- 10.2.md | 12 ++++++------ 3.4.md | 34 +++++++++++++++++----------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/10.2.md b/10.2.md index 91375f54..5897c0f3 100644 --- a/10.2.md +++ b/10.2.md @@ -116,12 +116,12 @@ $GOROOT/lib/time包中的timeinfo.zip含有locale对应的时区的定义,为 而对于里面的index.tpl里面的资源设置如下: -// js文件 - -// css文件 - -// 图片文件 - + // js文件 + + // css文件 + + // 图片文件 + 采用这种方式来本地化视图以及资源时,我们就可以很容易的进行扩展了。 diff --git a/3.4.md b/3.4.md index df8baea1..59738931 100644 --- a/3.4.md +++ b/3.4.md @@ -111,45 +111,45 @@ handler是一个接口,但是前一小节中的`sayhelloName`函数并没有 按顺序做了几件事: - 1. 调用了DefaultServerMux的HandleFunc + 1 调用了DefaultServerMux的HandleFunc - 2. 调用了DefaultServerMux的Handle + 2 调用了DefaultServerMux的Handle - 3. 往DefaultServeMux的map[string]muxEntry中增加对应的handler和路由规则 + 3 往DefaultServeMux的map[string]muxEntry中增加对应的handler和路由规则 - 其次调用http.ListenAndServe(":9090", nil) 按顺序做了几件事情: - 1. 实例化Server + 1 实例化Server - 2. 调用Server的ListenAndServe() + 2 调用Server的ListenAndServe() - 3. 调用net.Listen("tcp", addr)监听端口 + 3 调用net.Listen("tcp", addr)监听端口 - 4. 启动一个for循环,在循环体中Accept请求 + 4 启动一个for循环,在循环体中Accept请求 - 5. 对每个请求实例化一个Conn,并且开启一个goroutine为这个请求进行服务go c.serve() + 5 对每个请求实例化一个Conn,并且开启一个goroutine为这个请求进行服务go c.serve() - 6. 读取每个请求的内容w, err := c.readRequest() + 6 读取每个请求的内容w, err := c.readRequest() - 7. 判断handler是否为空,如果没有设置handler(这个例子就没有设置handler),handler就设置为DefaultServeMux + 7 判断handler是否为空,如果没有设置handler(这个例子就没有设置handler),handler就设置为DefaultServeMux - 8. 调用handler的ServeHttp + 8 调用handler的ServeHttp - 9. 在这个例子中,下面就进入到DefaultServerMux.ServeHttp + 9 在这个例子中,下面就进入到DefaultServerMux.ServeHttp - 10. 根据request选择handler,并且进入到这个handler的ServeHTTP + 10 根据request选择handler,并且进入到这个handler的ServeHTTP mux.handler(r).ServeHTTP(w, r) - 11. 选择handler: + 11 选择handler: - A. 判断是否有路由能满足这个request(循环遍历ServerMux的muxEntry) + A 判断是否有路由能满足这个request(循环遍历ServerMux的muxEntry) - B. 如果有路由满足,调用这个路由handler的ServeHttp + B 如果有路由满足,调用这个路由handler的ServeHttp - C. 如果没有路由满足,调用NotFoundHandler的ServeHttp + C 如果没有路由满足,调用NotFoundHandler的ServeHttp ## links * [目录]()