摘要: #Mutex 1.值类型变量,通过参数传递会导致锁被复制 2.不可重入 3.不可重复unlock,或者是unlock未lock的mutex #RWMutex 1.在Mutex的基础上进行了扩展 2.写写,写读之间互斥,读读之间共享 3.解锁时,优先读者 #条件变量 1.初始化条件变量必须使用mute 阅读全文
posted @ 2022-03-07 15:23 故意写bug 阅读(115) 评论(0) 推荐(0)
摘要: #测试类型 1.功能测试,以Test开头,带有testing.T类型的唯一参数 2.性能测试,以Benchmark开头,带有testing.B类型的唯一参数 3.示例测试,以Example为前缀,对参数列表没有强制规定 #功能测试 1.命令:go test 包路径(没有开启go mod,项目在gop 阅读全文
posted @ 2022-03-07 14:07 故意写bug 阅读(61) 评论(0) 推荐(0)
摘要: #go语句 1.当通过go语句创建一个go routine时,会在空闲的routine队列中查找是否有空闲的routine,如果有就调度到运行的routine队列中,否则创建一个routine,然后等待运行,所以一条go语句执行到这个go语句的函数被执行,有一段等待的时间。 #错误处理 当返回一个错 阅读全文
posted @ 2022-03-02 17:52 故意写bug 阅读(70) 评论(0) 推荐(0)
摘要: #结构体 1.结构体可以嵌套,如果存在重名的函数,会被覆盖 2.结构体嵌套时不指定字段名称,默认的名称是嵌套的类型名 #接口 golang的接口由两部分组成 1.动态类型 2.动态值 可以看下这篇文章,就全懂了nil is not nil #指针 golang中不可以进行指针操作的具有如下特点 1. 阅读全文
posted @ 2022-03-02 15:51 故意写bug 阅读(126) 评论(0) 推荐(0)
摘要: #通道的基本特性 1.一个FIFO的阻塞队列 2.发送和接受的都是副本 3.重复close会panic,已经close的通道再次写入会panic 4.值为nil的通道上进行读写会阻塞 5.双向通道转换成单向通道是自动的,可以用来限制通道的使用者只进行读或者写操作 #高阶函数 // 先定义一个函数类型 阅读全文
posted @ 2022-03-02 15:48 故意写bug 阅读(89) 评论(0) 推荐(0)
摘要: #切片 切片是一个结构体,有三个成员,数组指针,长度,容量,可以理解为一个数组的窗口, 数组指针:这个窗口的最左边 长度:窗口的大小 容量:窗口的右边最多可以扩展到什么位置 // 示例1。 s1 := make([]int, 5) fmt.Printf("The length of s1: %d\n 阅读全文
posted @ 2022-03-02 12:06 故意写bug 阅读(35) 评论(0) 推荐(0)
摘要: #变量声明 func main() { var name string // [1] flag.StringVar(&name, "name", "everyone", "The greeting object.") // [2] // 方式1。 //var name = flag.String(" 阅读全文
posted @ 2022-03-01 21:06 故意写bug 阅读(112) 评论(0) 推荐(0)
摘要: #工作区和gopath gopath下面有src,pkg,bin三个目录,src存放源代码,pkg和bin用于install,build之后生成的二进制文件的存放 工作区就是gopath指示的目录 #如何在命令源码文件中添加自定义的启动参数 //定义一个接受参数的变量 var name string 阅读全文
posted @ 2022-03-01 15:26 故意写bug 阅读(57) 评论(0) 推荐(0)
摘要: 好处是配置可选,直观 type Server struct { Addr string Port int protocol string Timeout time.Duration MaxConn int TLS *tls.Config } type option func(*Server) fun 阅读全文
posted @ 2022-02-24 20:25 故意写bug 阅读(141) 评论(0) 推荐(0)
摘要: /* UndoIntSet是IntSet的功能扩展,可以进行undo操作 通过委托和反转控制将IntSet的逻辑和Undo的逻辑分开 undo的功能由委托给functions,这样可以实现IntSet依赖functions, */ type undo []func() func (u *undo) 阅读全文
posted @ 2022-02-24 20:17 故意写bug 阅读(200) 评论(0) 推荐(0)