Golang 的 reflect 包和 unsafe 包
一、reflect 包 基于反射的代码是比较脆弱的 反射的操作不能做静态类型检查,而且大量反射的代码通常难以理解 基于反射的代码通常比正常的代码运行速度慢一到两个数量级 二、unsafe 包 unsafe 包用于实现比较低层级的包,如 runtime、syscall
三、cgo 编程 在没有 golang 实现的可用工程包时,不得以而使用 c/c++ 实现的库时,使用 cgo 来调用
package main /* #include <stdint.h> static int32_t max(int32_t x, int32_t y) { return (x > y) ? x : y; } */ import "C" import "fmt" func main() { var x, y int32 = 2, 6 var z int32 = int32(C.max(C.int32_t(x), C.int32_t(y))) fmt.Println(z) // 6 } // 注意*: import "C" 要紧跟 c/c++ 代码 ……