Go的http有两个核心功能:Conn、ServeMux; Go的DefaultServeMux默认路由器的2个核心要点:如何添加路由规则、如何查找路由规则。
gorilla/mux是一个强大的URL路由器和golang调度程序。它实现了请求路由器和调度程序,用于将传入请求与其各自的处理程序进行匹配。
golang类型别名的设计初衷是为了解决代码重构时,类型在包(package)之间转移时产生的问题,类型别名是go1.9新引入的,和原类型完全一样; golang类型定义(或者应该叫类型再定义)的类型和原类型不一样。类型定义一般用在为一个类型添加一个方法使用?也就是方法前面的接受者?
做一个golang项目,免不了需要选型框架,下面整理了一份常用的技术选型框架。
前言
如果说goroutine和channel是Go并发的两大基石,那么接口是Go语言编程中数据类型的关键。在Go语言的实际编程中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。
Go不是一种典型的OO语言,它在语法上不支持类和继承的概念。
WaitGroup是一种控制并发的方式,它的这种方式是控制多个goroutine同时完成.一个很简单的例子,比如2个goroutine要同时都做完了,才算是完成,先做好的就要等着其他未完成的,所有的goroutine要都全部完成才可以.编程模式是wg.Add()->wg.Done()->wg.Wait()
另外一种是chan通知方式通知其他goroutine说我这个goroutine结束了,编程模式是select->case <- chan
通过Context来通知,编程模式是select->case <- ctx.Done() -> cancel()
Context控制多个goroutine,编程模式…