当我编译以下代码时,它会生成
*语法错误:在第 *case workerAddr = <- mr.registerChannel:*
行unexpected case, expecting expression*
我不知道为什么会发生这种情况,因为我只想通过任一通道设置工作Addr。 任何建议将不胜感激。
for i:= 0; i < mr.nMap; i++ {
go func(jobCount) {
for {
var workerAddr string
Select {
// get a worker either from registerChannel or from idle channel
case workerAddr = <- mr.registerChannel:
case workerAddr = <- mr.idleChannel:
}
// omit the following code
}
}(i)
}
发生这种情况是因为您在应该写select
的时候写了Select
。
Go 关键字都不是大写的,因此当编译器看到大写的单词时,它会立即知道它不是表达式,因此是语法错误。