golang提供內建函式cap用於檢視channel緩衝區長度。
cap的定義如下:
func cap(v type) int
the cap built-in function returns the capacity of v, according to its type:
- array: the number of elements in v (same as len(v)).等同於len
- pointer to array: the number of elements in *v (same as len(v)).等同於len
- slice: the maximum length the slice can reach when resliced;
if v is nil, cap(v) is zero.對於slice,表示在不重新分配空間的情況下,可以達到的切片的最大長度。如果切片是nil, 則長度為0.
- channel: the channel buffer capacity, in units of elements;表示緩衝區的長度。
if v is nil, cap(v) is zero. 如果通道是nil,則緩衝區長度為0。
package main
import
("fmt"
)func
main()
output:
ch1 buffer len:0ch2 buffer len:2
golang開發 channel使用
channel主要是用於多個goroutine之間通訊 channel是引用型別,需要實用make來建立channel,如下 make chan type,buffer chan type 通道的型別 buffer 是可選引數,代表通道緩衝區的大小 省略則代表無緩衝 向channel裡面寫入資料使用...
golang開發 channel使用
channel主要是用於多個goroutine之間通訊 channel是引用型別,需要實用make來建立channel,如下 make chan type,buffer chan type 通道的型別 buffer 是可選引數,代表通道緩衝區的大小 省略則代表無緩衝 向channel裡面寫入資料使用...
golang中channel的用法
go語言的range迴圈可以直接在channels上面迭代。使用range迴圈一次從channel中接受資料,當channel被關閉並且沒有值可接受時跳出循壞。func main close natures go func close squares for x range squares 雙向ch...