chan array初始化
Posted 丹江流
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了chan array初始化相关的知识,希望对你有一定的参考价值。
package main
import "fmt"
func run() {
chann[0] <- 1
}
var chann = make([]chan int, 2)
func main() {
go run()
obj := <- chann[0]
fmt.Println(obj)
}
OUT:fatal error: all goroutines are asleep - deadlock!
如果用fswatch观看,只能发现是阻塞的,没有这个信息。
该问题产生的原因:
var chann = make([]chan int, 2) 仅仅是初始化了chan 数组,但是数组中的每个chan没有初始化,值为nil. 这个时候不论是往通道变量里写数据还是读数据都是无法进行的。
正确的初始化方法:
var chans = []chan int { make(chan int), make(chan int), make(chan int), make(chan int), make(chan int), } 或者 var chans [5]chan int for i := range chans { chans[i] = make(chan int) }
以上是关于chan array初始化的主要内容,如果未能解决你的问题,请参考以下文章
js代码片段: utils/lcoalStorage/cookie
[TIA PORTAL][CONVERT] Convert Char Array to DInt...DInt to Char Array..Useful and easy function(代码片段