自go1.7+,我们可以在编译时开启对有潜在slice越界访问风险的语句进行提示。
1 | package main |
此处代码并未对slice的使用进行边界校验,容易发生危险,因为 s []int
尺寸未知。
1 | go build -gcflags="-d=ssa/check_bce/debug=1" main.go |
当我们把上面的代码修改为:
1 | func f1(s []int) { |
再执行刚才的命令,就不会再提示有越界的可能了
原文地址(需梯子):
自go1.7+,我们可以在编译时开启对有潜在slice越界访问风险的语句进行提示。
1 | package main |
此处代码并未对slice的使用进行边界校验,容易发生危险,因为 s []int
尺寸未知。
1 | go build -gcflags="-d=ssa/check_bce/debug=1" main.go |
当我们把上面的代码修改为:
1 | func f1(s []int) { |
再执行刚才的命令,就不会再提示有越界的可能了
原文地址(需梯子):