golang檢視channel緩衝區的長度

2021-08-30 21:31:13 字數 820 閱讀 3786

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:0

ch2 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...