go
runtime_error
ai_generated
true
panic: runtime error: invalid memory address or nil pointer dereference (channel receive)
ID: go/channel-nil-receive
80%Fix Rate
80%Confidence
0Evidence
2024-09-05First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| 1.19 | active | — | — | — |
Root Cause
尝试从nil通道接收数据,导致panic。
generic中文
尝试从nil通道接收数据,导致panic。
Workarounds
-
95% success
ch := make(chan int); go func(){ v := <-ch; /* ... */ }() -
80% success
select { case v := <-ch: default: /* 处理 */ }
Dead Ends
Common approaches that don't work:
-
50% fail
如果检查不彻底,可能仍有nil通道被使用。
-
80% fail
如果通道是nil,接收操作会永久阻塞,不是立即panic。