08 2020 档案
摘要:Go 语言中接口的实现都是隐式的,我们只需要实现 Error() string 方法实现了 error 接口。Go 语言实现接口的方式与 Java 完全不同: 在 Java 中:实现接口需要显式的声明接口并实现所有方法;在 Go 中:实现接口的所有方法就隐式的实现了接口;我们使用上述 RPCErro
阅读全文
摘要:Go 语言设计与实现 中关于栈空间的描述多数架构上默认栈大小都在 2 ~ 4 MB 左右,极少数架构会使用 32 MB 作为默认大小。用户程序可以在分配的栈上存储函数参数和局部变量。 Go 语言的逃逸分析遵循以下两个不变性1.指向栈对象的指针不能存在于堆中;2.指向栈对象的指针不能在栈对象回收后存活
阅读全文
摘要:控制并发数 附图: 引用: https://chai2010.cn/advanced-go-programming-book/ch1-basic/ch1-06-goroutine.html
阅读全文
摘要:Go语言不支持传统面向对象中的继承特性,而是以自己特有的组合方式支持了方法的继承。Go语言中,通过在结构体内置匿名的成员来实现继承 通过嵌入匿名的成员,我们不仅可以继承匿名成员的内部成员,而且可以继承匿名成员类型所对应的方法。不过这种方式继承的方法并不能实现C++中虚函数的多态特性。所有继承来的方法
阅读全文
摘要:查看生成的汇编代码go tool compile -S xx.go //编译器对汇编代码进行优化 go tool compile -S -N -l xx.go //不优化 注:如果编译时不使用 -N -l 参数,编译器会对汇编代码进行优化,编译结果会有较大差别 c语言汇编分析 // ch04/my_
阅读全文