为了账号安全,请及时绑定邮箱和手机立即绑定

当永远不会评估消息时,应该使用哪种渠道类型?

当永远不会评估消息时,应该使用哪种渠道类型?

Go
SMILET 2023-06-05 17:05:07
使用以下 select 语句,我想确保一些非阻塞函数只一个接一个地执行:select {case <-available:default:    fmt.Println("busy")    return}go func() {    defer func() { available <- true }()    doSomethingOneByOne()}()目前我正在使用boolas 通道类型,它按预期工作。我不喜欢的是 usingbool表明值是trueor很重要false。但实际上在这种情况下并不重要。在我看来,这会让人更难理解代码,因为它具有误导性。当值无关紧要时,是否有使用哪种类型的约定?
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

chan struct{}是一个有效的选择——struct{}是一个有效的类型,但是这种类型的值不包含任何数据并且大小为零,并且所有struct{}值都是不可区分的,这使其成为 Go 的单位类型。要构造要在通道上发送的类型的值struct{},您可以使用文字struct{}{}



查看完整回答
反对 回复 2023-06-05
  • 1 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信