我在 go 缓冲通道方面遇到了问题,因为我试图从中迭代一个值,并且收到错误报告,这里是代码:
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)
}
}
.\access.go:17:9: cannot use b (variable of type int) as []int value in assignment
有没有办法实现这一点?或者是否可以解决它? 欢迎任何人参与其中,我愿意接受建议,让我保留在标准 golang 包中(请不要使用外部模块)谢谢!!!.
您遇到的错误是由于您尝试将单个
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)
}
}