![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go编程学习
nofansboomboomboom
freestyle
展开
-
go语言定时器
golang定时器标准库time下封装了非常简单好用的定时器time.Ticker// 每两秒触发一次 <-ticker.Cticker := time.NewTicker(2e9)// go1.16增加了一个时间间隔的重置方法ticker.Reset(6e9)// stopticker.Stop()该包下有个特别类似的实体time.Timer// 唯一的区别就是他只触发一次,完全靠Reset重置实现定时任务,其他一模一样对于time.Sleep(d Duration)原创 2021-11-29 17:32:09 · 268 阅读 · 0 评论 -
golang函数选项模式(创建者)
Functional Option Pattern属于是创建者模型我们创建实例有很多方法,其本质都是创建结构体但缺点是,直接去构造结构体代码的可读性并不高,也并不是良好的接口最常见的方式type Server struct { host string port int}func New(host string, port int) *Server { return &Server{ host: "127.0.0.1", port: 8080, }}一种简单进阶的原创 2021-11-29 10:40:51 · 159 阅读 · 0 评论 -
Nginx轮询算法
以下代码均用go实现普通轮询算法func main() { r := new(RoundRobinBalance) r.Add("127.0.0.1:80") r.Add("127.0.0.1:81") r.Add("127.0.0.1:82") fmt.Println(r.Next()) fmt.Println(r.Next()) fmt.Println(r.Next()) fmt.Println(r.Next()) fmt.Println(r.Next())}type Rou原创 2021-11-23 13:59:06 · 1834 阅读 · 0 评论 -
go语言编译静态文件
新接触go的朋友会发现通常情况下是没有办法把静态文件编译到程序里面的1.16版本加入了一个新的标准库解决了这个烦恼demo//go:embed test.txtvar s string//go:embed test.txtvar bs []byte//go:embed test.txtvar f embed.FS非常简单,就可以直接读取了,并且可以打包...原创 2021-11-22 10:29:31 · 463 阅读 · 0 评论 -
go中间件制作
参考gin中间件type Context struct { handlers []func(c *Context) index int8}func (c *Context) Use(f func(c *Context)) { c.handlers = append(c.handlers, f)}func (c *Context) Next() { c.index++ c.handlers[c.index](c)}func (c *Context) GET(path stri原创 2021-11-16 22:31:33 · 56 阅读 · 0 评论 -
设计模式之golang实现
工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。/** 多个实现了同一接口的类 用一个工厂去实现不同的需求 */func main() { factory := ShapeF...原创 2020-03-04 21:50:04 · 170 阅读 · 0 评论 -
go变量、常量以及print
变量go语言的声明方式并不单一,我只写出我们常用的表达方式不给值就会有默认值,以下以批量声明的方式给出var( name2 string // "" age2 int // 0 isOK2 bool // false)在局部变量声明的时候我们通常str := "abc" //简单快速的去实现匿名变量,go声明的局部变量必须被使用,但如果不想使用,可以匿名掉...原创 2020-02-24 18:21:06 · 143 阅读 · 0 评论 -
go语言-基础
在此,我不准备过多的赘述关于go语言前生,你有所耳闻,才会来到这里关于一些编程的基础,我也不在此详解关于其执行一、可以编译后执行1、预先编写好一个go文本(扩展名为go)2、在该目录下执行go biuld hello.go3、此时就会生成一个hello.exe的可执行文件二、直接运行go run hello.go执行此语句不会生成exe文件,但实质上也是先生成exe在执行的实际...原创 2019-10-27 20:52:12 · 106 阅读 · 0 评论