项目里经常出现panic: assignment to entry in nil map
的错误,问题其实很简单,但第一眼不一定能看出来。
复现demo:
1 | package main |
代码逻辑是期望并发执行两个任务,然后使用得到的结果,但却发生了panic。
原因是在错误的地方使用了defer wg.Done()
,内部函数f执行结束后,还没有将返回值赋值给result[i]
,主线程就继续运行了,进而发生nil map panic。
前人挖的坑,后人的kpi。
一只生之无趣死之乏味的丧家之犬
项目里经常出现panic: assignment to entry in nil map
的错误,问题其实很简单,但第一眼不一定能看出来。
复现demo:
1 | package main |
代码逻辑是期望并发执行两个任务,然后使用得到的结果,但却发生了panic。
原因是在错误的地方使用了defer wg.Done()
,内部函数f执行结束后,还没有将返回值赋值给result[i]
,主线程就继续运行了,进而发生nil map panic。
前人挖的坑,后人的kpi。