mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-11-13 17:36:12 +08:00
@@ -526,7 +526,7 @@ for {
|
|||||||
|
|
||||||
```go
|
```go
|
||||||
var send_only chan<- int // channel can only send data
|
var send_only chan<- int // channel can only send data
|
||||||
var recv_only <-chan int // channel can onley receive data
|
var recv_only <-chan int // channel can only receive data
|
||||||
```
|
```
|
||||||
|
|
||||||
只接收的通道(<-chan T)无法关闭,因为关闭通道是发送者用来表示不再给通道发送值了,所以对只接收通道是没有意义的。通道创建的时候都是双向的,但也可以分配有方向的通道变量,就像以下代码:
|
只接收的通道(<-chan T)无法关闭,因为关闭通道是发送者用来表示不再给通道发送值了,所以对只接收通道是没有意义的。通道创建的时候都是双向的,但也可以分配有方向的通道变量,就像以下代码:
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ Http是一个比tcp更高级的协议,它描述了客户端浏览器如何与
|
|||||||
```
|
```
|
||||||
第二个参数`found`就是`true`,如果`var1`并未出现在表单中,`found`就是`false`
|
第二个参数`found`就是`true`,如果`var1`并未出现在表单中,`found`就是`false`
|
||||||
|
|
||||||
表单属性实际上是一个`map[string][]string`类型。网页服务器返回了一个`http.Response`,它是通过`http.ResponseWriter`对象输出的,这个对象整合了HTTP服务器的返回结果;通过对它写入内容,我们就讲数据发送给了HTTP客户端。
|
表单属性实际上是一个`map[string][]string`类型。网页服务器返回了一个`http.Response`,它是通过`http.ResponseWriter`对象输出的,这个对象整合了HTTP服务器的返回结果;通过对它写入内容,我们就将数据发送给了HTTP客户端。
|
||||||
|
|
||||||
现在我们还需要编写网页服务器必须执行的程序,它是如何处理请求的呢。这是在`http.HandleFunc`函数中完成的,就是在这个例子中当根路径“/”(url地址是http://localhost:8080)被请求的时候(或者这个服务器上的其他地址),`HelloServer`函数就被执行了。这个函数是`http.HandlerFunc`类型的,它们通常用使用Prehandler来命名,在前边加了一个Pref前缀。
|
现在我们还需要编写网页服务器必须执行的程序,它是如何处理请求的呢。这是在`http.HandleFunc`函数中完成的,就是在这个例子中当根路径“/”(url地址是http://localhost:8080 )被请求的时候(或者这个服务器上的其他地址),`HelloServer`函数就被执行了。这个函数是`http.HandlerFunc`类型的,它们通常用使用Prehandler来命名,在前边加了一个Pref前缀。
|
||||||
|
|
||||||
`http.HandleFunc`注册了一个处理函数(这里是`HelloServer`)来处理对应`/`的请求。
|
`http.HandleFunc`注册了一个处理函数(这里是`HelloServer`)来处理对应`/`的请求。
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user