golang 将缓冲通道范围转换为数组

问题描述 投票:0回答:1

伙计们,我在 golang 缓冲通道方面遇到了问题,因为我试图从中迭代一个值,并且收到错误报告,这里是代码:

package main
import (
"fmt"
)
func main() {
var ch chan int = make(chan int, 2)
    ch <- 12
    ch <- 23
    var br []int
    for b := range ch {
         br = b
        fmt.Println(br)
    }
}
//and it returns an error 
 .\access.go:17:9: cannot use b (variable of type int) as []int value in assignment ```
arrays go range channel buffered
1个回答
0
投票

您遇到的错误是由于您尝试将单个

int
值分配给
int
br
的切片,这是无效的。

这是更正后的代码:

package main

import (
    "fmt"
)

func main() {
    var ch chan int = make(chan int, 2)
    ch <- 12
    ch <- 23
    var br []int
    for b := range ch {
        br = append(br, b) // Append the value to the slice
        fmt.Println(br)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.