登录
首页 >  Golang >  Go问答

Golang 发送到 nil 通道的编译错误

来源:stackoverflow

时间:2024-02-21 17:57:24 348浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《Golang 发送到 nil 通道的编译错误》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我想知道 golang 是否应该在发送到 nil 的情况下编译和运行 渠道。一个例子是:

func main() {
  var ch chan string
  var msg string
  msg ="echo"
  ch <-msg
  msg = <-ch
}

可以编译,但应该编译,因为没有通道只分配一个零。在执行之前您不会发现存在问题,更糟糕的是,某些 ide 不会告诉您这是一个问题。


正确答案


一般来说,这在编译时无法检测到。通道可以是函数的参数,传递什么值只能在运行时决定。

因此没有理由将其设为编译时错误。这可能是一个警告,但仅限于所有可能情况中的一小部分。在某些情况下发出警告会产生误导,但并非在所有情况下都发出警告。当你没有看到任何警告时,你会得出错误的结论。更不用说使用/传递 nil 通道有时可能是正确/预期要做的事情。

查看相关:How does a non initialized channel behave?

今天关于《Golang 发送到 nil 通道的编译错误》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>