
Go
文章平均质量分 52
Go语言知识点备忘。
yimtcode
这个作者很懒,什么都没留下…
展开
-
Go 1.21新功能
Go 1.21新API。原创 2024-08-03 14:20:46 · 199 阅读 · 0 评论 -
Go编译DLL与SO
将Go编译成DLL/SO供其他语言调用。.DLL:文件是 Windows 操作系统的动态链接库文件。.SO 文件是 Unix、Linux 和其他类 Unix 系统的共享库文件。原创 2024-02-28 11:24:26 · 837 阅读 · 0 评论 -
Go Barrier栅栏
实现与python库类似的功能,多线程同时等待达到指定数量一起放行。有待改进地方wait方法没有支持context控制。原创 2024-02-28 08:48:25 · 802 阅读 · 0 评论 -
Go 跨平台编译
跨平台编译,也称为交叉编译,是指在一个平台上生成另一个平台上的可执行文件。这个过程涉及到一个体系架构(Architecture)和操作系统(Operating System)两个概念。同一个体系架构可以运行不同的操作系统,同样,同一个操作系统也可以在不同的体系架构上运行。具体到跨平台编译,是指将一个源代码编译成适合另一个平台的可执行文件,这需要考虑到目标平台的体系架构和操作系统的特性。原创 2023-12-31 12:11:49 · 1241 阅读 · 0 评论 -
Go配置镜像源
GOPROXY是一个加速Go语言包下载和更新的工具。它通过镜像源的方式,帮助开发者快速获取Go语言包,提高开发效率。GOPROXY的使用非常简单,只需在终端中设置其地址,然后使用go get、go mod等命令即可享受更快的下载速度。对于Go语言开发者来说,GOPROXY是一个必备的实用工具。原创 2023-12-26 21:13:12 · 2488 阅读 · 0 评论 -
Go context
Go语言的context包是用于在并发编程中传递请求作用域的工具。它解决了在多个goroutine之间传递请求相关数据、控制请求超时、取消请求等问题。原创 2023-07-27 08:44:21 · 287 阅读 · 0 评论 -
Go | zap
go zap日志库的基本使用。原创 2023-05-19 21:47:32 · 1593 阅读 · 1 评论 -
Go | 三索引切片
go三索引入门原创 2023-05-07 15:53:59 · 240 阅读 · 0 评论 -
Go json: unsupported value: NaN
除数为浮点数并且值为0时不会引发panic,此时得到的结果是NaN是不可以用来进行数学运算和JSON对象序列化反序列化。下面是对问题复现。原创 2023-01-19 10:39:11 · 911 阅读 · 0 评论 -
Go | 常见坑
Go | 常见坑1. randimport ( "math/rand" "time")var generator = rand.New(rand.NewSource(time.Now().Unix()))func main() { go func() { for { generator.Int() } }() go func() { for { generator.Int() } }() time.Sleep(time.Second * 100)原创 2022-04-17 14:02:48 · 660 阅读 · 0 评论 -
Go | unsafe package
Go | unsafe package1. 简介unsafe不安全包,可以为我们提供一些Go语言底层的操作。如:查找变量占用空间内存对齐倍数指针运算访问非公开的变量注意:正常我们在开发Go语言程序,应该尽量避免使用该包的内容。2. 常用方法2.1. unsafe.Sizeof简介计算变量内存中占用字节大小。示例func main() { var i int32 = 123 fmt.Println(unsafe.Sizeof(i)) // Output: 4 fmt.原创 2022-03-28 11:00:09 · 460 阅读 · 0 评论 -
Go UTF8与GBK转换
UTF8与GBK转换原创 2021-04-06 23:23:35 · 2474 阅读 · 2 评论 -
Go 反射
Go语言的反射(reflection)通过reflect包提供,允许在运行时检查、修改对象的结构和行为。它主要用于动态类型处理、序列化/反序列化、依赖注入和测试等场景,但使用时需注意其性能开销、安全性问题和代码可读性。原创 2020-12-16 21:08:01 · 181 阅读 · 4 评论 -
Go:context包
Go:context包1. 简介1.1. 作用主要用Goroutine管理,停止Goroutine或之间参数传递。1.2. 核心接口type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{}}方法说明Deadline返回截止时间和是否存在截止时间原创 2020-10-20 13:28:27 · 117 阅读 · 0 评论 -
Go:测试
Go:测试Go本身提供了一套轻量级的测试框架。1. 功能测试1.1. 条件测试文件名必须为xxx_test.go里面的测试方法必须为TestXXX(t *testing.T)1.2. 文件树形图demo├── demo.go├── demo_test.go└── go.mod1.3. 演示demo.gopackage demofunc Add(a, b int) int { return a + b}demo_test.gopackage demoimp原创 2020-10-03 21:38:56 · 132 阅读 · 0 评论 -
Go:HTTP长连接
Go:HTTP长连接一、演示package mainimport ( "fmt" "io" "io/ioutil" "log" "net" "net/http" "net/url" "sync" "time")var ( client *http.Client once sync.Once)func CreateHTTPClient() *http.Client { // 使用单例创建client once.Do(func() { client = &a原创 2020-08-04 07:53:33 · 3125 阅读 · 1 评论 -
Gin基础:路由
Gin基础:路由一、Hello worldpackage mainimport ( "github.com/gin-gonic/gin" "net/http")func main() { r := gin.Default() r.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Hello World") }) r.Run() // 监听并在 0.0.0.0:8080 上启动服务}二、注册(一)路由注册p原创 2020-07-14 20:00:08 · 223 阅读 · 0 评论 -
GoLand:Unresolved reference ‘NewFunction‘
Goland:Unresolved reference ‘NewFunction’(一)描述在给Goland升级版本后,所有包的引用都提示Unresolved reference ‘方法名’。(二)原因之前的项目中的.idea文件夹是旧版本的Goland创建的,里面应该是些数据和新版本不兼容。(三)解决方法将项目中的.idea文件夹删除,Goland会自动重新生成就好了。...原创 2020-07-12 19:19:21 · 864 阅读 · 0 评论 -
Go:信号操作
Go信号操作作用可以用来阻止Ctrl+c关闭程序Web应用可以在收到Ctrl+c阻止新的请求进入,等待所有进入请求处理完成退出程序package mainimport ( "fmt" "os" "os/signal" "syscall")func main() { // 监听处理信号 go SignalHandle() // 防止main执行完毕退出 select { }}func SignalHandle() { for { ch := make(ch原创 2020-06-27 19:40:19 · 228 阅读 · 0 评论