摘要:
Select用法 Go里面提供了一个关键字select,通过select可以监听channel上的数据流动。 select的用法与switch语言非常类似,由select开始一个新的选择块,每个选择条件由case语句来描述。 与switch语句相比, select有比较多的限制,其中最大的一条限制就 阅读全文
摘要:
RabbitMqBase消息队列小结 虽然这个消息队列我只是知道应用场景在哪里,还没有实际操作到,但是原理还是要知道的。这些知识点就像珍珠,万一哪天就用到了。在没具体学习之前,我一直在想: 这玩意不就是个队列吗。还能玩出花来?结果,一研究,还真的打脸了。 首先,这玩意用的是AMQP协议,并且只是占用 阅读全文
摘要:
PtrSwap不仅仅是原地交换两个数 交换两个数,实际上是交换两个数的地址 交换两个int数 package main import "fmt" func Swap(a, b *int) { tmp := *a *a = *b *b = tmp } func main() { num1 := 1 n 阅读全文
摘要:
InterfaceSummary接口小结 继承 注意: 其实这个和接口没多大关系,结构体实现,为了和实现接口做对比,但是还是要放在这里 场景: 所有的程序员都有格子衫,有一个叫mike的普通程序员也是如此。但是有个牛逼的程序员mao,他还会骑 自行 车,也就是运动员的运动。 实现代码 # n 阅读全文
摘要:
InterfaceDesign接口设计原则 接口设计真配上设计模式,真香,但是我书落学校了(所以,以后再学设计模式) 虽然我书落在学校了,但是不影响我百度啊。百度一下接口设计原则是啥样的 接口设计6个原则(原理部分) 软件设计的最高目标: 高内聚,低耦合 单一职责原则 Single Responsi 阅读全文
摘要:
InitOrder初始化执行顺序 包的引用,函数执行顺序 代码结构 |-- go-algorithm(根目录) |-- A | |-- a.go |-- B | |-- b.go └ -- main.go a.go package A import "fmt" func init() { A1() 阅读全文
摘要:
HandleDecorator装饰器模式实践 实现记录时间的中间件,记录地址中间件 装饰模式原理 连接地址(点我) 代码实现 // 中间件的实现 // 装饰模式 package main import ( "encoding/json" "errors" "fmt" "log" "net/http" 阅读全文
摘要:
GmpEasy协程简单概要 Go为了提供更容易使用的并发方法,使用了goroutine和channel。goroutine来自协程的概念,让一组可复用的函数运行在一组线程之上,即使有协程阻塞,该线程的其他协程也可以被 runtime 调度,转移到其他可运行的线程上。 Go中,协程被称为gorouti 阅读全文
摘要:
CutIf消除if_else 避免过度封装,合适就好。但是对于大量的业务代码,还是业务出去比较好,主线逻辑保证清晰 消除连续范围的if 1 < x <= 22, 22 < x < 66 .... 实现思路 运用look_up 按照从小到的的顺序存进切片 多少个间隔,放多少个算法,也就是业务策略 放进 阅读全文
摘要:
不定参数的使用 起初学习的蒙蔽状态 在学习不定参数的时候,我认为传切片就好了,没必要这玩意吧。直到看Go文档的cmd时候,exec.Command(name string, args ...string),所以说,存在即合理。 应用场景 在我们想要获取linux服务器的输出状态,获取cpu使用率,内 阅读全文