【发布时间】:2021-03-03 07:52:18
【问题描述】:
我有一个驱动例程,它有一个专用通道到四个(或更多)不同的 goroutine - 这些通道都是相同的类型 -
Go 频道是否具有唯一标识符或可以将一个频道与另一个频道唯一标识的方法,或者是否只有在创建频道时才能识别该频道?
【问题讨论】:
-
频道值具有可比性。如果两个通道值是通过对
make的同一调用创建的,或者两者都具有值nil,则它们是相等的。这对你来说够了吗? -
添加一点细节:它们是存储在 [] 结构中的四个(或更多)不同的拨打电话 - 然后我从存储在结构中的频道拨打电话 - 我正在尝试在我遍历它们时弄清楚我是否可以确定它们是否不同 - 我正在尝试使用它来调试我遇到的一些问题。
-
正如icza所说,您可以将两个频道值与
==进行比较,如果它们是同一频道,则为true。 -
这确实有帮助,但这是一个稍微不同的问题:频道的内部是否有唯一的 id,或者有一种唯一标识可以通过编程方式访问的频道的方法?
-
存储它的值,但如果它存储在 []connections 中,那么能够查看连接的详细信息并具有唯一标识符会很好,但可能会有不是一个,这就是我问的原因: w.connection = make(chan string, 10) w.connection.(Identifier) 或任何可以帮助跟踪连接的东西 - 或者这可能是目前尚不可用的东西,哪个这就是我问的原因。