GO
-
我们一起聊聊 Golang for 循环
Go中基于范围的“for”循环简化了迭代集合的过程,提供了清晰和简洁的语法。当迭代期间需要索引和值(或键和值)时,它特别有用。range关键字的灵活性使其成为各种场景的强大工具,从迭代数组和切片到遍历映射和字符串。
-
Go 1.22中值得关注的几个变化,你知道几个?
记忆中,这似乎是Eli Bendersky首次代表Go团队撰写Go版本发布的文章,文章短小且言简意赅,会让大家误以为Go 1.22版本没有太多的功能点变更,其实不然。读过我之前写的“Go 1.22新特性前瞻[4]”一文的童鞋都知道Go 1.22中有很多重要且影响深远的值得我们关注的变化。在这篇文章中,我们就再来介绍一下这些变化,供大家参考。
-
Go Gin框架中间件中使用Goroutine的正确姿势
在Gin框架中,正确地在中间件或处理函数中使用Goroutine是非常重要的。创建一个只读的上下文副本是避免竞态条件的关键步骤。通过本文的介绍和示例,读者应该能够理解并掌握在Gin中间件中使用Goroutine的正确方法。
-
使用Go语言轻松实现谷歌翻译
Translate和TranslateWithParams。其中,TranslateWithParams方法还提供了一些可选参数,但对于简单的翻译任务,我们只需要使用From和To参数即可。
-
Go 中如何检查文件是否存在?可能产生竞态条件?
本文通过一个小小的问题:Go 语言中如何检查文件是否存在,除了引出 Go 中检查文件是否存在的基本方法。同时,还介绍了文件操作时如何避免潜在的竞态条件,进一步了解到一个有趣的小知识,Unix 系统调用是原子性操作。
-
在Go中使用接口:实用性与脆弱性的平衡
处理货币时 — 使用 math/big 或一些与货币相关的库,比如 shopspring/decimal,或者只是使用货币单位,在这里不要使用浮点数。将货币作为字符串传递,或者在货币单位中传递,不要在这里使用浮点数。
-
Go 语言中 enum 实现方式有哪些?一定要绝对类型安全吗?
Go 语言中,枚举的表达方式多种多样。从简单的 iota 到复杂的结构体方式,每种方法都有其适用场景。作为开发者,最好是根据自己的具体需求,选择合适的实现方式。
-
使用Go Gin SecureJSON技术保护你的JSON数据
现在大家都明白如何使用Go Gin的SecureJSON来防止JSON劫持了吧?让我们用这个积极的态度去面对所有的网络安全问题,保护我们的数据。
-
替代Zap,Go语言官方实现的结构化日志包
无论你是一个初级还是高级的 Go 开发人员,理解和掌控 go 的日志系统是非常有用的。接下来,让我们深入研究一下 Go 中的日志行为,并通过实例来详细理解每个主要功能。
-
Go 语言实战:构建强大的延迟任务队列
延迟队列是一种数据结构,用于处理需要在未来某个特定时间执行的任务。这些任务被添加到队列中,并且指定了一个执行时间,只有到达指定的时间点时才能从队列中取出并执行。
-
Go Gin框架实现优雅地重启和停止
本文详细介绍了如何在Go语言的Gin框架中实现优雅地重启和停止服务,包括通过监听系统信号,通过HTTP请求以及超时控制等方式。
-
正确理解Go高级并发模式
Go对并发提供了强大的原生支持,本文讨论Go的高级并发模式,理解这些并发模式,可以帮助我们编写高效的Go应用程序。
-
十分钟搞懂20个Golang优秀实践
优秀实践是一些不成文的经验总结,遵循最佳实践可以使我们站在前人的肩膀上,避免某些常见错误,写出更好的代码。
-
浅聊Go分布式链路追踪
使用Go的链路追踪,我们可以深入到每一个环节,一眼就看出问题出在哪,找到性能瓶颈,大大提高我们的生产效率。这就是为什么Go链路追踪如此重要,值得我们深入理解和使用的原因。
-
2024年的Rust与Go,你看明白了吗?
Go和Rust都旨在帮助你编写正确的程序,但方式不同:例如,Go提供了出色的内置单元测试框架和丰富的标准库,而Rust则专注于利用其借用检查机制(borrow checker)消除运行时错误。