小编tho*_*mas的帖子

Golang - 在struct中使用chan slice

我试图在结构中使用切片chan类型,类似于下面的代码.但是,当我尝试接收时

test := <-c.slice
Run Code Online (Sandbox Code Playgroud)

该程序挂起.有没有办法做到这一点?

package main

import "fmt"

type blah struct {
    slice chan [][]int
}

func main() {

    slice := make([][]int, 3)
    c := blah{make(chan [][]int)}

    slice[0] = []int{1, 2, 3}
    slice[1] = []int{4, 5, 6}
    slice[2] = []int{7, 8, 9}

    go func() {
        test := <- c.slice
        test = slice
        c.slice <- test
    }()

    fmt.Println(<-c.slice)
}
Run Code Online (Sandbox Code Playgroud)

channel hang go slice

5
推荐指数
1
解决办法
6026
查看次数

标签 统计

channel ×1

go ×1

hang ×1

slice ×1