在通道变量初始化之后建立缓冲通道

时间:2017-03-18 16:11:57

标签: go memory-management channel

我可以像这样初始化一个缓冲的字符串通道

queue := make(chan string, 10)

但是如何初始化Go中结构中的缓冲通道?基本上我想为缓冲的字符串通道分配内存。但最初在结构中我只是定义它并在struct初始化中,我想为它分配内存

type message struct {

  queue *chan string
// or will it be 
//queue []chan string

}

func (this *message) init() {

  queue = make(chan string,10)

  this.queue = &queue

}

2 个答案:

答案 0 :(得分:2)

这样做:

static var launchRequest:String? = nil   

在这种情况下,无需获取频道的地址。

答案 1 :(得分:1)

以同样的方式:

type message struct {
    queue chan string
}

func (m *message) init() {
    m.queue = make(chan string, 10)
}

但是你似乎对某个频道有点困惑。 *chan string是Go中的有效构造,但通常是不必要的。只需使用普通chan string - 不需要指针。

  

//或者是否是   // queue [] chan string

这将是一个频道数组,这也是有效的,但在这种情况下不是你想要的。

频道不是数组。它更像是一个流(当您读取文件或网络连接时可能会得到)。但也不要把这个类比太过分了。