最新 最热

Go语言中常见100问题-#34 Ignoring how the break statement works

break语句通常用来终止一个循环,当循环语句带有switch或select语句时,使用break语句要特别小心,否则会产生bug。下面通过一个具体的例子说明,这段程序在循环内部通过switch判断i的值,如果i的值为2,期望通过break终止循环。...

2023-08-17
1

Go: 负数转换uint64会是什么结果

负数转换为uint64类型时会发生什么呢?在Go语言中,这样的转换并不会引发错误,但结果可能会令人意外。下面我们深入探讨这个问题。

2023-08-15
1

整数溢出问题:从一段Go代码的故障排查到内部原理探讨

该代码的目的是通过IP、端口和账号来生成一个独特的整数,用于队列处理。然而,如果uint64的值太大,在转换为int类型时就可能超出范围,从而产生负数。...

2023-08-15
1

Go语言中range遍历数组下标与uint64不兼容的问题及解决方案

在Go语言中,使用range来遍历数组或切片时,下标的默认类型为int。然而,在某些情况下,我们可能需要与uint64类型的值进行比较或操作。这时,由于类型不匹配,可能会导致编译错误或运行时问题。...

2023-08-15
1

JavaScript 结合 Go 实现 临时密钥(STS)

最近有个项目,需要通过网页上传文件到对象存储中,在查看COS快速入门时,文档建议使用获取临时密钥:

2023-08-15
1

Go使用chan或context退出协程

go两个协程使用了同一个文件句柄,其中一个协程关闭了这个文件句柄并退出了协程,如何及时通知另一个协程退出?

2023-08-12
1

Go中sync.WaitGroup处理协程同步

一个 sync.WaitGroup 对象可以等待一组协程结束。它很好地解决了 goroutine 同步的问题。

2023-08-11
1

使用Go语言实现命令模式

命令模式是一种行为设计模式,它将请求或操作封装到一个单独的对象中,使我们可以使用请求的不同参数来参数化其他对象,并支持请求的排队或记录,以及支持可撤销的操作。在这篇文章中,我们将探讨如何在Go语言中实现命令模式,并...

2023-08-10
1

使用Go语言实现策略模式

策略模式是一种行为设计模式,允许我们在运行时改变对象的行为。通过这种方式,我们可以选择算法并改变对象的行为。在这篇文章中,我们将探讨如何在Go语言中实现策略模式,并通过一个排序算法选择器实例来进行说明。...

2023-08-10
1

使用Go语言实现观察者模式

观察者模式是一种行为设计模式,当对象的状态改变时,它允许某些对象通知其他对象。这通常被用于实现事件处理系统。下面我们通过一个简单的天气监控系统来演示在Go语言中如何实现观察者模式。...

2023-08-10
1