channel channel是Go语言在语言级别提供的goroutine间的通信方式。 我们可以使用channel在两个或多个goroutine之间传递消息。channel是进程内的通信方式,因此通过channel传递对象的过程和调用函数时的参数传递...
go
Golang的并发编程(1)
在“序”中,我们已经描述过Go语言中最重要的一个特性,那就是go关键字。 优雅的并发编程范式,完善的并发支持,出色的并发性能是Go语言区别于其他语言的一大特色。使用Go语言开发服务器程序时,就需要对它的并发...
golang 中 channel 的详细使用、使用注意事项及死锁分析
golang 中 channel 的详细使用、使用注意事项及死锁分析 什么是 channel 管道# 它是一个数据管道,可以往里面写数据,从里面读数据。 channel 是 goroutine 之间数据通信桥梁,而且是线程安全的。 ch...
golang中锁Mutex非for循环里可以使用吗
在Go语言中,sync.Mutex是一种互斥锁,用于在多个goroutine中同步对共享资源的访问。如果你尝试在for循环之外使用Mutex,那么这个锁可能没有任何意义,因为它不会提供任何并发控制,因为在循环外部,没有其他goro...
go gorm 软删除和查询 及注意事项
软删除 如果您的模型包含了一个 gorm.deletedat 字段(gorm.Model 已经包含了该字段),它将自动获得软删除的能力! 拥有软删除能力的模型调用 Delete 时,记录不会从数据库中被真正删除。但 GORM 会将 Delete...
golang 生成横向纵向不一致的矩阵
在 Go 语言中生成一个非方阵(即横向和纵向维度不一致的矩阵),可以使用切片来实现。以下是一个示例程序,用于创建一个 m x n 的矩阵(m 行 n 列),并且可以使用不同的值来初始化矩阵中的元素。 示例程序 g...
golang 二维数组指定字段去重
这段代码定义了一个UniqueByField函数,它接受一个任意类型的切片和一个字段名,然后返回根据该字段去重后的切片。在main函数中,我们定义了一个Record结构体和一个示例数据切片,并演示了如何使用UniqueByField...
用 Golang 实现矩阵运算库
根据网上已有的代码 将错误的地方改掉 写了一个可以使用运行的库 package matrix import ( "math" ) type SQ struct { //矩阵结构 N, M int //m是列数,n是⾏数 Data [][]float64 } //矩阵...
golang之embed初体验
将前端打包的dist直接放在项目根目录,和main.go在同一个目录 然后再mian.go中使用 //go:embed dist var FS embed.FS func main() { r := gin.New() fp, _ := fs.Sub(FS, "dist") ...
golang 接口方法使用泛型
在 Go 语言中,从 Go 1.18 开始支持泛型,这使得接口可以定义使用泛型的方法。泛型允许你编写灵活且可重用的组件,这些组件能够处理多种类型而无需为每种类型重复代码。 下面是一个简单的例子来展示如何定义一...