在使用 Go module 过程中,随着引入的依赖增多,也许你会发现go.mod文件中部分依赖包后面会出现一个// indirect的标识。这个标识总是出现在require指令中,其中// 与代码的行注释一样表示注释的开始,indirect表示间接的依赖。 在执行命令go mod tidy时,Go module 会自动整理go.mod 文件,如果有必要会在部分依赖包的后面增加// indirect注释。一般而言,被添加注释的包肯定是间接依赖的包,而没有添加// indirect注释的包则是直接依赖的包,即明确的出现在某个import语句中。
https://github.com/felipecaputo/vscode-go-gvm 需要重启gopls才会生效 Go: Restart Language Server Restart the running instance of the language server https://github.com/LeetCode-OpenSource/vscode-leetcode https://github.com/golang/vscode-go/blob/master/docs/advanced.md#using-go118
没有范型我们怎么写代码 func bubbleSort(array []int) { for i := 0; i < len(array); i++ { for j := 0; j < len(array)-i-1; j++ { if array[j] > array[j+1] { array[j], array[j+1] = array[j+1], array[j] } } } } 面对int32,int64,float我们怎么解决? 1,cp ….. 2,interface{} 方式一: type Sortable interface{ Len() int Less(int, int) bool Swap(int, int) } 算法 func bubbleSort(array Sortable) { for i := 0; i < array.Len(); i++ { for j := 0; j < array.Len()-i-1; j++ { if array.Less(j+1, j) { array.Swap(j, j+1) } } } } 问题:即使是每一种简单类型也需要实现接口,依然有cp //实现接口的整型切片 type IntArr []int func (array IntArr) Len() int { return len(array) } func (array IntArr) Less(i int, j int) bool { return array[i] < array[j] } func (array IntArr) Swap(i int, j int) { array[i], array[j] = array[j], array[i] } 方式二: func bubbleSort(array []interface{}) { for i := 0; i <len(arr); i++ { for j := 0; j < len(array)-i-1; j++ { switch array[j].(Type){ case int: if array[j+1]<array[j]{ array[j+1],array[j]=array[j],array[j+1] } } } } }