![](https://img-blog.csdnimg.cn/20201014180756724.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 · 265 阅读 · 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 · 154 阅读 · 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 · 1825 阅读 · 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 · 460 阅读 · 0 评论 -
GO操作mongoDB
GO操作mongo数据库实战主要是mongo官方文档抄过来的,加上一些自己简单的话术先决条件有go环境和mongo环境创建好go mod文档,导入驱动 require go.mongodb.org/mongo-driver写个demo创建一个main.go导入本次需要的包,和写上一个结构体做案例import ( "context" "fmt" "log" "go.mongodb.org/mongo-driver/bson" "go.mongodb原创 2021-05-26 20:22:21 · 159 阅读 · 0 评论 -
设计模式之golang实现
工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。/** 多个实现了同一接口的类 用一个工厂去实现不同的需求 */func main() { factory := ShapeF...原创 2020-03-04 21:50:04 · 167 阅读 · 0 评论 -
go变量、常量以及print
变量go语言的声明方式并不单一,我只写出我们常用的表达方式不给值就会有默认值,以下以批量声明的方式给出var( name2 string // "" age2 int // 0 isOK2 bool // false)在局部变量声明的时候我们通常str := "abc" //简单快速的去实现匿名变量,go声明的局部变量必须被使用,但如果不想使用,可以匿名掉...原创 2020-02-24 18:21:06 · 143 阅读 · 0 评论 -
gorm
Go原生提供了连接数据库操作的支持,在用 Golang进行开发的时候,如果需要在和数据库交互,则可以使用database/sql包。这是一个对关系型数据库的通用抽象,它提供了标准的、轻量的、面向行的接口。在Go中访问数据库需要用到sql.DB接口:它可以创建语句(statement)和事务(transaction),执行查询,获取结果。使用数据库时,除了database/sql包本身,还需要引...原创 2020-02-13 21:19:16 · 193 阅读 · 0 评论 -
gin
框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了。成长总不会一蹴而就,从写出程序获取成就感,再到精通框架,快速构造应用,当这些方面都得心应手的时候,可以尝试改造一些框架,或是自己创造一个。Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了1.0版本。具有快速灵活,容错方便等特点。其实对于golan...原创 2020-02-13 18:14:16 · 141 阅读 · 0 评论 -
go cookie
package mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { r := gin.Default() r.GET("/login", func(c *gin.Context) { //cookie的key和value,生存时间60s,127.0.0.1可以存这个cookie c.SetCook...原创 2020-02-12 21:47:56 · 104 阅读 · 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 评论