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。
Example
package main
import ("fmt")
func main(){
ch1 := make(chan int)
ch2 := make(chan int, 2)//缓冲区长度为2
fmt.Println("ch1 buffer len:", cap(ch1))
fmt.Println("ch2 buffer len:", cap(ch2))
}
output:
ch1 buffer len:0
ch2 buffer len:2
Just try, don't shy.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2017-11-04 kafka 安装与配置
2017-11-04 golang kafka client
2017-11-04 Package rdkafka was not found in the pkg-config search path.
2017-11-04 panic: interface conversion: interface {} is nil, not chan *sarama.ProducerError
2017-11-04 dashboard无法查到endpoint, counter
2017-11-04 open-falcon Agent配置文件修改hostname后,还是有其他名称的endpoint