indirect

Posted by 夏泽民

在使用 Go module 过程中,随着引入的依赖增多,也许你会发现go.mod文件中部分依赖包后面会出现一个// indirect的标识。这个标识总是出现在require指令中,其中// 与代码的行注释一样表示注释的开始,indirect表示间接的依赖。 在执行命令go mod tidy时,Go module 会自动整理go.mod 文件,如果有必要会在部分依赖包的后面增加// indirect注释。一般而言,被添加注释的包肯定是间接依赖的包,而没有添加// indirect注释的包则是直接依赖的包,即明确的出现在某个import语句中。



gvm

Posted by 夏泽民

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



grpc-go

Posted by 夏泽民

3.1 连接管理 为了让连接变得更可靠和高效,gRPC需要对连接进行管理。



go范型

Posted by 夏泽民

类型参数(Type parameters) 如果说函数是传入数值来复用代码,那么泛型便是传入类型来复用代码。Go团队决定允许在函数以及类型定义时,传入类型参数来支持泛型。



generic

Posted by 夏泽民

没有范型我们怎么写代码 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] } } } } }



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required