advanced-go-programming-book icon indicating copy to clipboard operation
advanced-go-programming-book copied to clipboard

:books: 《Go语言高级编程》开源图书,涵盖CGO、Go汇编语言、RPC实现、Protobuf插件实现、Web框架实现、分布式系统等高阶主题(完稿)

Results 70 advanced-go-programming-book issues
Sort by recently updated
recently updated
newest added

所有的例子以这个路径为准, 需要打开模块支持。 https://godoc.org/chai2010.cn/gobook 需要在一些地方增加说明

目前缺少按章节的代码资源,欢迎PR

勘误1-1

原来的代码如下 ```golang package main /* #cgo windows CFLAGS: -DCGO_OS_WINDOWS=1 #cgo darwin CFLAGS: -DCGO_OS_DARWIN=1 #cgo linux CFLAGS: -DCGO_OS_LINUX=1 #if defined(CGO_OS_WINDOWS) const char* os = "windows"; #elif defined(CGO_OS_DARWIN) static const char* os...

```golang /* #include char arr[10]; char *s = "Hello"; */ import "C" import ( "reflect" "unsafe" ) func main() { // 通过 reflect.SliceHeader 转换 var arr0 []byte var arr0Hdr =...

勘误1-1

"推荐了几个较友好的Go语言编辑器和集成开发环境,因为好的工具可以极大地提高我们的效率。" 这句话对应的内容已经被删除

勘误1-1

这样将会导致包外部**用**于无法构造_Ctype_size_t和_Ctype_qsort_cmp_func_t类型的参数而无法使用Sort函数。因此,导出的Sort函数的参数和返回值要避免对虚拟C包的依赖。 用 应该是 由

勘误1-1

2.4.4 C调用Go导出函数 CGO生成的 _cgo_export.h 文件**回**包含导出后的C语言函数的声明。我们可以在纯C源文件中包含 _cgo_export.h 文件来引用导出的add函数。如果希望在当前的CGO文件中马上使用导出的C语言add函数,则无法引用 _cgo_export.h 文件。因为_cgo_export.h 文件的生成需要依赖当前文件可以正常构建,而如果当前文件内部循环依赖还未生成的_cgo_export.h 文件将会导致cgo命令错误。 回应该是 会

勘误1-1

除了全局这种代理之外,还有其他什么办法嘛?感觉这样绕来绕去很复杂,还有就是这样就没法并发,改进的话?有大佬提示一下思路吗?

第二章,类型转换关于零长数组的,源代码贴图,零长数组在struct的最后一个,存在这样的问题 When a C struct ends with a zero-sized field, but the struct itself is not zero-sized, Go code can no longer refer to the zero-sized field. Any such references...

# Description of problem when run https://github.com/chai2010/advanced-go-programming-book/blob/master/examples/ch2.1/hello-03/main.go, an error occurred: ``` GOROOT=/usr/local/go #gosetup GOPATH=/Users/cag2050/go #gosetup /usr/local/go/bin/go build -o /private/var/folders/bs/c1rv5w6n0cn77fp62sj3hzhh0000gp/T/GoLand/___5go_build_main_go /Users/cag2050/Documents/GoLandProjects/advanced-go-programming-book/examples/ch2.1/hello-03/main.go #gosetup # command-line-arguments Undefined symbols for architecture x86_64: "_SayHello", referenced...

bug