蒲东平的博客
Go语言中的map为什么默认不是并发安全的? Go语言中的map为什么默认不是并发安全的?
今天我们聊一个 Go 语言中的 “热门” 话题——为什么 Go 语言中的 map 默认不是并发安全的呢? 对于广大 Go 程序员来说,尤其是那些刚跨入 Go 世界的新朋友们,这个问题或许让你们摸不着头脑。别急,让我们一起慢慢揭开这层神秘的面
2024-07-12
Go语言map并发安全,互斥锁和读写锁谁更优? Go语言map并发安全,互斥锁和读写锁谁更优?
并发编程是 Go 语言的一大特色,合理地使用锁对于保证数据一致性和提高程序性能至关重要。 在处理并发控制时,sync.Mutex(互斥锁)和 sync.RWMutex(读写锁)是两个常用的工具。理解它们各自的优劣及擅长的场景,能帮助我们更好
2024-07-11
Go语言map并发安全使用的正确姿势 Go语言map并发安全使用的正确姿势
在并发编程的世界里,map 的使用随处可见。然而,当多个 goroutine 同时读写 map 时,如果不加以控制,很容易导致程序崩溃。 在 Go 语言中,我们通常有几种方法来保证对 map 的并发安全访问。今天,我将带大家详细了解如何在
2024-07-11
Go语言设计模式:使用Option模式简化类的初始化 Go语言设计模式:使用Option模式简化类的初始化
在面向对象编程中,当我们需要创建一个构造参数众多的类时,不仅使得代码难以阅读,而且在参数较多时,调用者需要记住每个参数的顺序和类型,这无疑增加了使用的复杂性,代码往往变得难以管理。 Go 语言虽然不支持传统意义上的类,但我们也可以使用结构体
2024-07-09
Go 语言性能优化技巧 Go 语言性能优化技巧
在软件开发中,性能往往是我们需要特别关注的方面之一。对于使用 Go 语言的开发者而言,如何编写高性能的代码是一个重要的考虑点。 今天,我将分享一些在 Go 语言开发中可以采取的性能优化策略,希望能帮助大家写出更高效的程序。 数字与字符串的转
2024-07-09
聊聊 Go 中的单例模式 聊聊 Go 中的单例模式
单例模式在软件开发中是一种常见的设计模式,用于确保一个类在任何情况下都仅有一个实例,并提供一个访问它的全局访问点。 在 Go 语言中,实现单例模式通常有两种方式:饿汉式 和 懒汉式。 今天,我们就来详细了解这两种实现方式,并通过简单易懂的代
2024-07-08
Go 项目自动重载解决方案 —— Air 使用入门 Go 项目自动重载解决方案 —— Air 使用入门
在开发 Go 应用程序时,我们经常需要重启应用来加载最新的代码更改。这个过程虽然简单,但重复的操作会降低我们的开发效率。 今天,我们要介绍的工具 —— Air, 就是为了解决这个问题而生的。 下面,我们将一步步介绍如何使用 Air 来实现
2024-07-08
使用 Makefile 管理和部署 Go 项目 使用 Makefile 管理和部署 Go 项目
在软件开发的世界里,自动化是提升效率的关键。Makefile 尽管是一个历史悠久的工具,但它在任务管理和自动化方面的能力依然不可小觑。 对于 Go 语言项目来说,利用 Makefile 来管理和自动化构建、部署过程能极大地简化开发流程。本文
2024-07-05
Go 基础数据类型 Go 基础数据类型
Go 基础数据类型对于浮点类型需要被自动推导的变量,其类型将被自动设置为 float64,而不管赋值给它的数字是否是用 32 位长度表示的在实际开发中,应该尽可能地使用 float64 类型,因为 math 包中所有有关数学运算的函数都会要
2024-05-09
Go语言中init 函数、变量、常量的执行顺序 Go语言中init 函数、变量、常量的执行顺序
init 函数、变量、常量的执行顺序 假如 main 引入了 pkg1 最终依赖于 pkg3,pkg3 中的 init() 方法会优先被执行; 同一个包里,单文件的情况,init() 优先于其他方法执行,包括 main(); 同一个包里的
2024-05-09
分享几个Go Slice 技巧,大大提高工作效率! 分享几个Go Slice 技巧,大大提高工作效率!
声明一个数组 var arr = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} // 让编译器统计数组字面值中元素的数目 var arr1 = [...]int{1, 2, 3, 4, 5, 6, 7, 8,
2024-05-09
一起来看看如何在Go中使用Swagger? 一起来看看如何在Go中使用Swagger?
Swagger go 的使用http 服务安装 go get -u github.com/swaggo/swag/cmd/swag@v1.7.8 go get -u github.com/swaggo/gin-swagger@v1.3.3
2024-05-09
1 / 2