最后更新于2021年8月12日 11:43:09
有时候看到一些小的知识点,放在这篇博客里了
Go编译缓存导致C文件修改后未重新编译 劳资服了,人才
小知识:CGO太tm难用了,建议不要频繁在golang和c之间传递数据,转换数据类型,我想死。建议业务代码都用C语言实现,golang作为参数的提供者和接受者。
CGO调用C语言的链接库,不但要写进#cgo LDFLAGS:
里面,还要在环境变量的LD_LIBRARY_PATH
这一项添加。
2021年9月1日 19:36:30:
type user struct {
name string
}
func main() {
u := user{
"tang"}
//Printf 格式化输出
fmt.Printf("% + v\n", u) //格式化输出结构
fmt.Printf("%#v\n", u) //输出值的 Go 语言表示方法
fmt.Printf("%T\n", u) //输出值的类型的 Go 语言表示
fmt.Printf("%t\n", true) //输出值的 true 或 false
fmt.Printf("%b\n", 1024) //二进制表示
fmt.Printf("%c\n", 11111111) //数值对应的 Unicode 编码字符
fmt.Printf("%d\n", 10) //十进制表示
fmt.Printf("%o\n", 8) //八进制表示
fmt.Printf("%q\n", 22) //转化为十六进制并附上单引号
fmt.Printf("%x\n", 1223) //十六进制表示,用a-f表示
fmt.Printf("%X\n", 1223) //十六进制表示,用A-F表示
fmt.Printf("%U\n", 1233) //Unicode表示
fmt.Printf("%b\n", 12.34) //无小数部分,两位指数的科学计数法6946802425218990p-49
fmt.Printf("%e\n", 12.345) //科学计数法,e表示
fmt.Printf("%E\n", 12.34455) //科学计数法,E表示
fmt.Printf("%f\n", 12.3456) //有小数部分,无指数部分
fmt.Printf("%g\n", 12.3456) //根据实际情况采用%e或%f输出
fmt.Printf("%G\n", 12.3456) //根据实际情况采用%E或%f输出
fmt.Printf("%s\n", "wqdew") //直接输出字符串或者[]byte
fmt.Printf("%q\n", "dedede") //双引号括起来的字符串
fmt.Printf("%x\n", "abczxc") //每个字节用两字节十六进制表示,a-f表示
fmt.Printf("%X\n", "asdzxc") //每个字节用两字节十六进制表示,A-F表示
fmt.Printf("%p\n", 0x123) //0x开头的十六进制数表示
2021年9月9日 17:12:50:
[典藏版] Golang 调度器 GMP 原理与调度全分析
An overview of memory management in Go
Garbage Collection In Go : Part I - Semantics
2021年9月13日 14:33:21:
22. 图解:Go语言中的静态类型与动态类型
获取接口值的动态类型的方法是使用%T:
var w io.Writer
fmt.Printf("%T\n", w)
2021年9月29日 11:27:48: