
Go
文章平均质量分 70
golang知识总结
CnPeng
公众号:CnPeng
GitHub : https://github.com/CnPeng/LearningNotes
展开
-
Go | 代码断行规则
本文基于《Go代码断行规则》补充整理1.1. 分号插入规则1.1.1. 插入规则在很多语言中,都使用分号 ; 作为语句终止符。但是在 Go 中不需要显示书写分号,而是会自动插入分号。根据 Go白皮书 中的描述,Go 中自动插入分号的规则如下:在 Go 代码中,除注释外,如果一个代码行的最后一个语法词段(token)为下列所示之一,则自动在此字段后(即行尾)插入一个分号:一个标识符;一个整数、浮点数、虚部、码点或者字符串字面量表示形式;这几个跳转关键字之一:break、continue原创 2021-05-19 20:02:34 · 934 阅读 · 0 评论 -
Go | defer 的使用总结
1.1. defer基本使用被 defer 修饰的内容,定义在函数内,在函数将要结束时调用(也就是:先调用没有 defer 的语句,最后调用被 defer 修饰的语句),通常用于释放资源(比如 defer file.close())。package mainimport "fmt"func main() { defer fmt.Println("aaaaaaaa") fmt.Println("bbbbbb")}运行结果:cnpeng$ go run Day1.go bbbbbba原创 2021-05-14 08:42:47 · 572 阅读 · 0 评论 -
Go | struct 的比较
1. struct 能不能进行比较?不同类型的 struct 之间不能进行比较,编译期就会报错(GoLand 会直接提示)同类型的 struct 也分为两种情况,struct 的所有成员都是可以比较的,则该 strcut 的不同实例可以比较struct 中含有不可比较的成员(如 Slice),则该 struct 不可以比较1.1. 同类型 struct 比较import "fmt"type A struct { age int name string}func Stru原创 2021-05-13 10:48:22 · 4175 阅读 · 1 评论 -
Go | sort 排序的使用
sort 包主要用来实现排序相关的操作,它实现了四种基本的排序算法:插入排序(insertionSort)、归并排序(symMerge)、堆排序(heapSort)和快速排序(quickSort);sort 包会依据实际数据自动选择最优的排序算法。1.1. sort.Interface 接口如果某个 struct 需要排序,则必须实现 sort.Interface 接口,提供 Len、Less、Swap 三个方法的实现,然后调用 sort.Sort() 。Interface 的具体定义如下:type原创 2021-05-11 16:53:07 · 1680 阅读 · 0 评论 -
Go | 字符串拼接方式总结和分析
欢迎关注我的公众号:CnPeng ,工作日 8:08 准时更新。1. 拼接方式+=append(,)buf.WriteString()fmt.Sprintf(,)copy(,)示例代码如下:package strimport ( "bytes" "fmt" "time")func Add(s1, s2 string) string { s1 += s2 return s1}func FmtSprintf(s1, s2 string) string { s1.原创 2021-02-06 14:13:21 · 1244 阅读 · 0 评论 -
Go | 字符串比较方式总结和分析
欢迎关注我的公众号:CnPeng ,工作日 8:08 准时更新。1 比较方式在 go 语言中字符串比较的方式有如下三种:== 直接比较,区分大小写strings.Compare(a,b) 该函数返回值为 int, 0 表示两数相等,1 表示 a>b, -1 表示 a<b。区分大小写strings.EqualFold(a,b) 直接返回是否相等,不区分大小写。示例如下:// 1-使用等号比较——区分大消息func Equal(s1, s2 string) bool { r.原创 2021-02-05 21:32:30 · 9013 阅读 · 0 评论 -
[工具] IntelliJ IDEA 中文语言包插件
欢迎关注我的公众号:CnPeng ,工作日 8:08 准时更新。IntelliJ IDEA 系列的产品一直以来都是英文界面,这对我们的使用造成了一定程度的影响。2020 年开始,IntelliJ 开始推进 IDEA 本地化,提供了中文、日语、韩语的语言包插件。该语言包插件在 IDEA 系列的产品中都可以使用,文中以 GoLand 为例。具体安装步骤如下:我们先打开Preferences界面(Mac 下的快捷键是Command + ,),然后选择Plugins -Marketp.......原创 2021-01-25 10:29:44 · 53072 阅读 · 4 评论 -
[Go] GoLand运行断点调试
实现的目标:本地服务运行过程中,触发断点调试,及时跟踪服务运行状况。1 现状目前项目中,编译脚本被整合到了Makefile文件中。在 GoLand 中,我们打开该文件,点击左侧的绿色箭头就可以直接执行对应的脚本内容。如下图:但是,这样运行服务之后,我们无法对运行中的服务进行断点调试。对于习惯了 AndroidStudio 断点调试的人来说,GoLand 中不能断点调试实在太难受,那么我们想要进行断点调试的话,该怎么做呢?2 配置点击下图中的Edit Configurations...原创 2021-01-21 18:29:43 · 6945 阅读 · 0 评论 -
[Go] Swaggo安装超时的解决
1 问题现象在 GOPATH 目录中通过 go get -u github.com/swaggo/swag/cmd/swag 安装 swag 时可能会遇见连接超时的错误信息,导致安装失败,如下:package golang.org/x/text/unicode/bidi: unrecognized import path "golang.org/x/text/unicode/bidi" (https fetch: Get https://golang.org/x/text/unicode/bidi?g原创 2021-01-21 15:57:50 · 1362 阅读 · 0 评论