题目一:

下面关于通道描述正确的是:

1.nil chan会触发panic
2.nil chan会触发panic
3.读关闭的chan会触发panic
4.写关闭的chan会触发panic

解答:这个提涉及到2个知识点,操作nil的chan会怎么样,操作关闭的chan会怎么样,下面我们分别在看下:

操作nil的chan : 对于nil chan不管是读还是写都不会触发panic, 而是阻塞。

操作关闭的chan: 关闭后的chan仍然是可以读的,利用这个特性我们经常会看到如下代码:

在协程里判断done来判断是否退出协程,在另外一个协程实际不会写入数据到done,而是直接close(done)

所以只有对关闭的chan进行写操作会触发panic ,答案选4

题目2:

下面函数输出什么:

func ChanCap() {
   ch := make(chan int,10)
   ch <- 1
   ch <- 2
   fmt.Println(len(ch))   //2
   fmt.Println(cap(ch))   //10
}

解答:解答:内置函数len()和cap()分别用于获取chan的数据个数和缓冲区大小

更多知识学习加入知识星球:
1、ChatGPT 基础用法、使用教程

2、交流共享 ChatGPT 的各种信息,资源互换,答疑关于 ChatGPT 的问题。

3、分享如何利用 ChatGPT 提升工作效率,分享变现机会。

4、go编程相关知识

5、工作中开发经验分享
在这里插入图片描述

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐