Go1.20 新版覆蓋率方案解讀

  • 2022 年 11 月 29 日
  • 筆記

玩过Go覆盖率的同学当有所了解,Go的覆盖率方案最初的设计目标仅是针对单测场景,导致其局限性很大。而为了适配更多的场景,行业内各种博客、插件、黑科技介绍也层出不穷。当然,过去我们也开源过Go系统测试覆盖率收集利器 - goc,算其中比较完善,比较系统的了。且从用户使用角度来看,goc也确实解决了行业 …

Continue Reading

聊聊Go裡面的閉包

  • 2022 年 11 月 21 日
  • 筆記

以前写 Java 的时候,听到前端同学谈论闭包,觉得甚是新奇,后面自己写了一小段时间 JS,虽只学到皮毛,也大概了解到闭包的概念,现在工作常用语言是 Go,很多优雅的代码中总是有闭包的身影,看来不了解个透是不可能的了,本文让我来科普(按照自己水平随便瞎扯)一下: 1、什么是闭包? 在真正讲述闭包之前 …

Continue Reading

關於Go你不得不知道的小技巧

  • 2022 年 11 月 20 日
  • 筆記

目录 Go 箴言 Go 之禅 代码 使用 go fmt 格式化 多个 if 语句可以折叠成 switch 用 chan struct{} 来传递信号, chan bool 表达的不够清楚 30 * time.Second 比 time.Duration(30) * time.Second 更好 用 …

Continue Reading

golang面向對象

  • 2022 年 11 月 19 日
  • 筆記

一、方法 1、方法是作用在指定的数据类型上,和指定的数据类型绑定,因此自定义类型都可以有方法,而不仅仅是struct; 2、方法的申明和格式调用: package main import ( "fmt" ) type Person struct{ Name string } func (p Pers …

Continue Reading

有趣的 Go HttpClient 超時機制

  • 2022 年 11 月 15 日
  • 筆記

hello,大家好呀,我是既写 Java 又写 Go 的小楼,在写 Go 的过程中经常对比这两种语言的特性,踩了不少坑,也发现了不少有意思的地方,今天就来聊聊 Go 自带的 HttpClient 的超时机制。 Java HttpClient 超时底层原理 在介绍 Go 的 HttpClient 超时 …

Continue Reading

go GMP

  • 2022 年 11 月 13 日
  • 筆記

动态栈 操作系统的线程一般都有固定的栈内存(通常为2MB),而 Go 语言中的 goroutine 非常轻量级,一个 goroutine 的初始栈空间很小(一般为2KB),所以在 Go 语言中一次创建数万个 goroutine 也是可能的。并且 goroutine 的栈不是固定的,可以根据需要动态地 …

Continue Reading

Go實現棧與隊列基本操作

  • 2022 年 11 月 11 日
  • 筆記

@ 目录 一 前言 二 实现栈与队列基本操作 2.1 栈基本操作 2.2 队列基本操作 三 用栈实现队列 3.1 理论 3.2 算法题 3.3 思路 3.4 代码部分 四 用队列实现栈 4.1 理论 4.2 算法题 4.3 思路 4.4 使用两个队列实现 4.5 优化 4.6 使用一个队列实现 一 …

Continue Reading

Go操作MySQL

  • 2022 年 11 月 8 日
  • 筆記

目录 一 连接 1.1 下载依赖 1.2 使用MySQL驱动 1.3 初始化连接 1.4 SetMaxOpenConns 1.5 SetMaxIdleConns 二 CRUD 2.1 建库建表 2.2 查询 2.3 单行查询 2.4 多行查询 2.5 插入数据 2.6 更新数据 2.7 删除数据 三 …

Continue Reading

go:快速添加介面方法及其實現

  • 2022 年 11 月 7 日
  • 筆記

问题描述 在大型项目中,通常存在多个模块,模块对外暴露的功能通常是通过接口封装,这样可以明确模块的功能,有效降低模块与模块之间的耦合度,同时模块与模块之间进行合理的组装。接口的实现,有时可能存在多个实现,如接口每个实现对应一种策略、或者测试代码中因为测试场景添加了测试实现等,这时候如果想给接口添加一 …

Continue Reading