在 Go 中,如果对一个已经关闭的 Channel 进行发送或接收操作,分别会发生什么?请结合可能引发的错误和常见场景说明。
考察说明
考察对 Go Channel 关闭后行为语义的理解,尤其是发送、接收和并发安全性
回答思路
- 明确指出关闭后发送会 panic,并解释原因
- 说明关闭后接收可以继续读取缓冲区剩余数据,再读得到零值
- 能区分对 nil channel 和已关闭 channel 的操作差异
- 能结合实际场景讨论关闭 channel 的注意事项,如只在发送方关闭、避免重复关闭
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。