一些问题的解答

#GO111MODULE 用途

golang从 1.11 版本之后开始用go mod来管理依赖包了,所以默认这个是开启的,但是像ngrok这种很老的,又不再更新开源版本的代码,不支持这个特性,需要关闭次功能:

1
go env -w GO111MODULE=off

#path.ext filepath.ext difference

path.ext里文件分割符是写死的,在 win 下应该会出问题,也可能不会。

1
2
3
4
5
6
7
8
9
10
11
12
// Ext returns the file name extension used by path.
// The extension is the suffix beginning at the final dot
// in the final slash-separated element of path;
// it is empty if there is no dot.
func Ext(path string) string {
for i := len(path) - 1; i >= 0 && path[i] != '/'; i-- {
if path[i] == '.' {
return path[i:]
}
}
return ""
}
1
2
3
4
5
6
7
8
9
10
11
12
// Ext returns the file name extension used by path.
// The extension is the suffix beginning at the final dot
// in the final element of path; it is empty if there is
// no dot.
func Ext(path string) string {
for i := len(path) - 1; i >= 0 && !os.IsPathSeparator(path[i]); i-- {
if path[i] == '.' {
return path[i:]
}
}
return ""
}

几乎没区别,硬要说的话,后者更安全些,除此之外没什么区别。

#map[string]string{} make(map[string]string) difference

没区别,一个更规范,一个更方便。

参考说明: