最新回答 / tom_0
其實case可以理解為嘗試讀取ch4,這時會發生兩種情況,一種是讀取到數據,一種是沒讀取到數據,如果讀取不到數據,則default條件成立;如果讀取到數據,這時又分為兩種情況,一種是讀取正常的數據,且通道也正常(ok為true);另外一種情況是通道關閉了,這時讀取到的值是:e為零值,這里為int的0,然后ok為false,表示通道已經關閉。所以,如果沒有close,第三次循環就會又進入 default 語句,然后ch4會再次被賦值,在第四次執行時,再次輸出1
2017-08-01
func (p *Person) Move(newaddr string) string{
oldaddr := p.Address
p.Address = newaddr
return oldaddr
}
oldaddr := p.Address
p.Address = newaddr
return oldaddr
}
2017-07-16
vim /etc/profile
最后一行插入
export GOROOT=/usr/local/go
export GOPATH=~/golib:~/goproject
export GOBIN=~/gobin
export PATH=$PATH:$GOROOT/bin:$GOBIN
然后 source /etc/profile
root 權限下,
最后一行插入
export GOROOT=/usr/local/go
export GOPATH=~/golib:~/goproject
export GOBIN=~/gobin
export PATH=$PATH:$GOROOT/bin:$GOBIN
然后 source /etc/profile
root 權限下,
2017-07-12
number=6,然后sender接收到6,但是如果聲明myChannel=make(chan int, (0)),這表示是一個非緩沖通道,那么,sender為6,myChannel接收到值之后立馬阻塞,然后去執行下面的匿名函數,在打印的時候取走了myChannel通道里面的值,然后myChannel不被阻塞,再執行上面的一個匿名函數,所以結果是Received! 6
Sent!
Sent!
2017-07-11