Golang Project Key Point

项目

模块

  • 1.模块中定义的结构体,如果要被其他模块使用,结构体中的字段如果是小写字母开头,是无法被导出的,大写字母开头即可

单元测试

  • 文件名需要以_test.go 结尾,在测试文件中,测试函数必须以Test为前缀,后面跟着一个函数名(通常是大写字母开头),这样Go的测试框架才能识别并执行这些函数。

Golang

语言

  • defer关键字,用于延迟执行某个函数, 在函数中加入多个defer语句,遵照先入后出的原则在函数执行后执行,注意,defer不适合在执行频率高的函数中使用。一般用于释放资源,如解锁,关闭文件等,和c++中raii做的事情比较像。

Go内置工具命令速查

main.go 测试文件

1
2
go tool objdump [...] main
反汇编main
1
2
3
4
5
6
go build -gcflags="[...]" main

-m 显示逃逸分析、内联建议等
-l 禁用内联
-N 禁用优化(代码更易调试)
all=-l 对所有包禁用内联
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
delve是go语言的Debugger,用法和gdb类似
dlv debug main.go
or dlv exe main

break main.main # 在 main 函数上设置断点
break main.go:42 # 在文件 main.go 的第 42 行设置断点
clear 1 # 清除 ID 为 1 的断点

print myVar # 打印变量值
print myStruct.Field1 # 打印结构体字段
print mySlice[3] # 打印切片某个元素
locals # 列出局部变量
args # 列出函数参数


next # 跳过函数调用
step # 进入函数调用
stepout # 跳出函数

stack # 查看当前调用栈
frame 1 # 切换栈帧

dlv test # 调试当前包测试用例
dlv test -- -test.run TestABC # 指定测试函数
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2015-2025 Xudong0722
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信