随笔分类 -  go语言

摘要:1.前置条件 已安装go1.13.15环境 2.module概念 module是一个相关Go包的集合,它是源代码更替和版本控制的单元。模块由源文件形成的go.mod文件的根目录定义,包含go.mod文件的目录也被称为模块根。moudles取代旧的的基于GOPATH方法来指定在工程中使用哪些源文件或导 阅读全文
posted @ 2020-09-06 19:56 Single_Dont 阅读(5359) 评论(0) 推荐(0)
摘要:知识点 通道拥有阻塞机制(无缓冲区),有缓冲区同理。 接收端在发送端数据发送完成之前(通道为nil),处于阻塞状态 发送端在接收端数据拿走完成之前(通道为满),处于阻塞态 注意点 1.struct{}类型不占空间,作为通道的一种信号方式 2.chan类型为引用类型,故需要进行初始化,申请空间,在通道 阅读全文
posted @ 2020-08-23 21:07 Single_Dont 阅读(428) 评论(0) 推荐(0)
摘要:模拟这样一个场景:当我们知道我们要执行操作的名字,让其作为参数传入,如何通过这个名字取执行相应的函数处理呢? 解决方法:(这里设定一个结构A,其变量a,实现相应函数为fun1、fun2) ①:首先在编码过程中,我们可以将相应的处理函数进行“同一结构”实现,让其函数名和相应处理函数用map结构形成映射 阅读全文
posted @ 2020-08-23 20:11 Single_Dont 阅读(1455) 评论(0) 推荐(0)
摘要:反射三大定律 反射第一定律:反射可以将“接口类型变量”转换为“反射类型对象” 1.使用v := reflect.TypeOf(a),对基本类型进行反射处理,因为TypeOf函数原型为:func TypeOf(I interface{})Type;故符合第一条定律 2.reflect.ValueOf( 阅读全文
posted @ 2020-08-23 19:27 Single_Dont 阅读(342) 评论(0) 推荐(0)
摘要:强类型定义语言(go) 1.强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。 2.注意:①如果你定义了一个整型变量 a,那么程序根本不可能将 a 当作字符串类型处理。 ②强类型定义语言是类型安全的语言。 ③当你定义一个变量是某个类 阅读全文
posted @ 2020-08-23 19:23 Single_Dont 阅读(1151) 评论(0) 推荐(0)
摘要:初学GO,time包里sleep是最常用,今天突然看到一个time.after,特记录time.after用法笔记如下: 首先是time包里的定义: //After waits for the duration to elapse and then sends the current time on 阅读全文
posted @ 2020-07-30 23:27 Single_Dont 阅读(1353) 评论(0) 推荐(0)
摘要:早期的select函数是用来监控一系列的文件句柄,一旦其中一个文件句柄发生IO操作,该select调用就会被返回。golang在语言级别直接支持select,用于处理异步IO问题。 select用法同switch类似,如下: timeout := make (chan bool, 1)ch := m 阅读全文
posted @ 2020-07-29 23:26 Single_Dont 阅读(730) 评论(0) 推荐(0)
摘要:Golang 推荐通过 channel 进行通信和同步,但在实际开发中 sync 包用得也非常的多,在以太坊的源码中也有很多这类应用的体现。 Go sync包提供了:sync.Mutex,sync.RMutex,sync.Once,sync.Cond,sync.Waitgroup,sync.atom 阅读全文
posted @ 2020-07-29 23:19 Single_Dont 阅读(226) 评论(0) 推荐(0)
摘要:我在这区别式C进行总结知识点 1.增加数据类型 字典map package main import "fmt" func main() { testmap := make(map[string]int) //表示创建一个key为string,value的值为int的数据类型。 testmap["do 阅读全文
posted @ 2020-07-17 13:12 Single_Dont 阅读(122) 评论(0) 推荐(0)