Go
文章平均质量分 61
golang学习
AquilaEAG
时间并不会改变什么,行动才会
展开
-
浅析Go中三个点(...)用法
…是go的一种语法糖第一个用法主要是用于函数有多个不定参数的情况,可以接受多个不确定数量的参数第二个用法是slice可以被打散进行传递示例:package main import ( "fmt") func main(){ name(1,2,3,4,5,6,7,8,9) //多个不确定数量的参数 var strss= []string{ "qwr", "234", "yui", "cvbc",原创 2022-04-20 23:49:00 · 603 阅读 · 0 评论 -
golang 多协程错误处理
注意: panic 异常处理机制不会自动将错误信息传递给 error,所以要在函数中进行显式的传递func GoroutineNotPanic(handlers ...func() error) (err error) { var wg sync.WaitGroup for _, f := range handlers { wg.Add(1) go func(handler func() error) { defer func() { if e := recover().原创 2022-04-20 23:46:47 · 1490 阅读 · 0 评论 -
Go 反射机制
Go语言提供了一种机制,能够在运行时更新变量和检查它们的值、调用它们的方法和它们支持的内在操作,而不需要在编译时就知道这些变量的具体类型。这种机制被称为反射。1. 为何需要反射?有时候我们需要编写一个函数能够处理一类并不满足普通公共接口的类型的值,也可能是因为它们并没有确定的表示方式,或者是在我们设计该函数的时候这些类型可能还不存在。比如fmt.fprintf函数提供的字符串格式化处理逻辑,它可以用来对任意类型的值格式化并打印,甚至支持用户自定义的类型。如果没有反射机制:func Sprint(x原创 2021-07-11 23:32:59 · 318 阅读 · 1 评论 -
Go 服务优雅退出
golang signal.Notify 信号,如何优雅的退出参考:https://www.cnblogs.com/landv/p/13139127.htmlgolang 中的signal 包的Notify函数:func Notify(c chan<- os.Signal, sig ...os.Signal)Notify函数让signal包将输入信号转发到c。如果没有列出要传递的信号,会将所有输入信号传递到c;否则只传递列出的输入信号。signal包不会为了向c发送信息而阻塞(就是说如果发送原创 2021-07-11 22:14:13 · 679 阅读 · 1 评论 -
Go 包管理
1. 什么是Go包?1.包的定义与导入包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。一个包可以由许多以 .go 为扩展名的源文件组成,必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。注意:包名都应该使用小写字母如果想要构建一个程序,则包和包内的文件都必须以正确的顺序进行编译。包的依赖关系决定了原创 2021-07-11 18:58:58 · 378 阅读 · 1 评论 -
golang基础(三)
1.Go语言中new和make的区别Go语言中new跟make是内置函数,主要用来创建分配类型内存。new( )new(T)创建一个没有任何数据的类型为T的实例,并返回该实例的指针。make( )make(T, args)只能创建 slice、map和channel,并且返回一个有初始值args(非零)的T类型的实例,非指针。二者异同二者都是内存的分配(堆上),但是make只用于slice、map以及channel的初始化(非零值);而new用于类型的内存分配,并且内存置为零。所以在我们编原创 2021-07-11 19:49:10 · 87 阅读 · 0 评论 -
golang基础(二)
参考:https://www.runoob.com/go/go-tutorial.html1.Go 语言范围(Range)Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。2.Go 语言Map(集合)Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。可原创 2021-07-11 17:16:39 · 85 阅读 · 0 评论 -
golang基础(一)
Go 语言最主要的特性:自动垃圾回收 更丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性参考:https://www.runoob.com/go/go-tutorial.html1.Go 语言的基础组成包声明、 引入包、 函数、 变量、 语句 & 表达式、 注释关于包,根据本地测试得出以下几点:a.文件名与包名没有直接关系,不一定要将文件名与包名定成同一个。b. 文件夹名与包名没有直接关系,并非需要一致。c. 同一个文件夹下的文原创 2021-07-11 16:31:25 · 211 阅读 · 0 评论