23 2023-11 GO golang 继承与组合 在前面两篇教程中,学院君已经介绍了 Go 语言不像 Java、PHP 等支持面向编程的语言那样,支持 class 之类的关键字来定义类,而是通过 type 关键字结合基本类型或者结构体来自定义类型系统,此外,它也... 阅读全文 2023年11月23日 10:18:58 周四 2023-11-23 周四 25 0 0
21 2023-11 GO golang 常见语法糖 2、Golang常用语法糖 2.1 简短变量声明 := 规则:简短变量声明符这个语法糖使用起来很方便,导致你可能随手就会使用它定义一个变量,往往程序的bug就是随手写出来的,在这里说一下简短变量声明的原理和... 阅读全文 2023年11月21日 11:09:32 周二 2023-11-21 周二 24 0 0
21 2023-11 GO golang 变量声明以及null golang null 结构体 转换成字符串时nil转为null 1,某结构体的普通字段,可以在json标签里面加omitempty,这样某个字段如果没有值,就不返回 2,某结构体数组中的的子结构体字段,var tags_list []*mod... 阅读全文 2023年11月21日 10:06:00 周二 2023-11-21 周二 22 0 0
24 2023-08 GO golang中的锁 近日看了一篇 文章,讲到了用锁的 panic 问题,但并没有看懂,今日测试了许多场景,认为终于得出了结论: 读写锁中的可读锁(sync.RWMutex 的 RLock())可以嵌套使用的。 互斥锁(sync.Mutex 和 sync.... 阅读全文 2023年08月24日 16:42:05 周四 2023-08-24 周四 25 0 0
14 2023-08 GO golang 协程和函数 同步与异步 同步异步,阻塞与非阻塞! 同步和异步,阻塞和非阻塞是涉及到程序执行和任务处理的概念。 同步(Synchronous):在同步操作中,任务按照顺序依次执行,【每个任务需要等待上一个任务完成后】才能开始执... 阅读全文 2023年08月14日 15:23:04 周一 2023-08-14 周一 31 0 0
09 2023-08 GO golang 变量声明和json转换 结构体 转换成json时nil转为null,其实就是nil转换成json就是null 1,某结构体的普通字段,可以在json标签里面加omitempty,这样某个字段如果没有值,就不返回 2,某结构体数组中的的子结构体字段,var... 阅读全文 2023年08月09日 17:21:09 周三 2023-08-09 周三 27 0 0
13 2023-05 GO golang 多种限流器实现 限流 日常开发中,一般会遇到几种场景需要限流,比如有个api-server, 需要限制单个用户的调用频率,避免用户恶意刷接口或者突发大流量导致服务不可用等,这边记录几个常用的限流方法。 并发控制 简单... 阅读全文 2023年05月13日 23:15:52 周六 2023-05-13 周六 19 0 0
20 2023-03 GO Go 常用的设计模式 1. 单例模式: package singleton import ( "sync" ) type singleton struct { } var ins *singleton var once sync.Once func GetInsOr() *singleton { ... 阅读全文 2023年03月20日 22:05:49 周一 2023-03-20 周一 33 0 0
28 2023-02 GO gin框架中间件 c.Next() c.Abort() c.Set() c.Get 跨中间件取值 gin中间件中使用goroutine 1. c.Next()演示 //HandlerFunc func indexHandler(c *gin.Context) { fmt.Println("index") c.JSON(http.StatusOK, gin.H{ "msg": "index", }) } //定义一个中... 阅读全文 2023年02月28日 22:02:00 周二 2023-02-28 周二 21 0 0
14 2022-10 GO golang-channel造成死锁案例 1. 案例1,无缓冲信道导致死锁, -> 运行死锁 // 不设定容量创建的是无缓冲信道,在接收者未准备好之前信道处于阻塞状态, package main func main(){ // 例如本案例... 阅读全文 2022年10月14日 17:46:49 周五 2022-10-14 周五 23 0 0