From d9247f4285997ae62c9075828ea0e6f9e4cf6819 Mon Sep 17 00:00:00 2001 From: chai2010 Date: Sat, 15 Dec 2018 16:06:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- ch2-cgo/ch2-02-basic.md | 2 +- ch5-web/ch5-02-router.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6024039..414c557 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ ## 相关报告 -- [GIAC: 2018 - Go 语言将要走向何方?](chai2010/giac2018) - [chai2010](https://github.com/chai2010/awesome-go-zh/tree/master/chai2010) 上海·GIAC全球互联网架构大会 2018/11/23 +- [GIAC: 2018 - Go 语言将要走向何方?](https://github.com/chai2010/awesome-go-zh/blob/master/chai2010/giac2018) - [chai2010](https://github.com/chai2010/awesome-go-zh/tree/master/chai2010) 上海·GIAC全球互联网架构大会 2018/11/23 - [Go语言并发编程](https://talks.godoc.org/github.com/chai2010/awesome-go-zh/chai2010/chai2010-golang-concurrency.slide) - [chai2010](https://github.com/chai2010/awesome-go-zh/tree/master/chai2010) 武汉·光谷猫友会 2018/09/16, [整理01](https://mp.weixin.qq.com/s/UaY9gJU85dq-dXlOhLYY1Q)/[整理02](https://mp.weixin.qq.com/s/_aKNO-H11GEDA-l0rycfQQ) - 深入CGO编程: https://github.com/chai2010/gopherchina2018-cgo-talk diff --git a/ch2-cgo/ch2-02-basic.md b/ch2-cgo/ch2-02-basic.md index 3be1938..3966206 100644 --- a/ch2-cgo/ch2-02-basic.md +++ b/ch2-cgo/ch2-02-basic.md @@ -65,7 +65,7 @@ func main() { } ``` -这段代码是不能正常工作的,因为当前main包引入的`C.cs`变量的类型是当前main包的cgo构造的虚拟的C包下的*char类型(具体点是`*C.char`,更具体点是`*main.C.char`),它和cgo_helper包引入的`*C.char`类型(具体点是`*cgo_helper.C.char`)是不同的。在Go语言中方法是依附于类型存在的,不同Go包中引入的虚拟的C包的类型却是不同的(`main.C`不等`cgo_helper.C`),这导致从它们延伸出来的Go类型也是不同的类型(`*main.C.char`不等`*cgo_helper.C.char`),这最终导致了前面代码不能正常工作。 +这段代码是不能正常工作的,因为当前main包引入的`C.cs`变量的类型是当前`main`包的cgo构造的虚拟的C包下的`*char`类型(具体点是`*C.char`,更具体点是`*main.C.char`),它和cgo_helper包引入的`*C.char`类型(具体点是`*cgo_helper.C.char`)是不同的。在Go语言中方法是依附于类型存在的,不同Go包中引入的虚拟的C包的类型却是不同的(`main.C`不等`cgo_helper.C`),这导致从它们延伸出来的Go类型也是不同的类型(`*main.C.char`不等`*cgo_helper.C.char`),这最终导致了前面代码不能正常工作。 有Go语言使用经验的用户可能会建议参数转型后再传入。但是这个方法似乎也是不可行的,因为`cgo_helper.PrintCString`的参数是它自身包引入的`*C.char`类型,在外部是无法直接获取这个类型的。换言之,一个包如果在公开的接口中直接使用了`*C.char`等类似的虚拟C包的类型,其它的Go包是无法直接使用这些类型的,除非这个Go包同时也提供了`*C.char`类型的构造函数。因为这些诸多因素,如果想在go test环境直接测试这些cgo导出的类型也会有相同的限制。 diff --git a/ch5-web/ch5-02-router.md b/ch5-web/ch5-02-router.md index 64335b1..e3d66a8 100644 --- a/ch5-web/ch5-02-router.md +++ b/ch5-web/ch5-02-router.md @@ -4,7 +4,7 @@ restful 是几年前刮起的 API 设计风潮,在 restful 中除了 GET 和 POST 之外,还使用了 http 协议定义的几种其它的标准化语义。具体包括: -```shell +```go const ( MethodGet = "GET" MethodHead = "HEAD"