Go 1.18 迁移问题 - 无法将“nil”转换为“any”类型

Rag*_*ndy 7 ide generics go goland

我将代码库更新为 Go 1.18。一切看起来都很棒,但在一些地方,我发现了以下问题。

defer func() {
    if e := recover() ; e!=nil {
        ...
    }
}()
Run Code Online (Sandbox Code Playgroud)

编译失败并显示:

无法将“nil”转换为类型“any”

相同的代码在 Go 1.17 中运行良好。基于 Go 1.18 发行说明,是(Generics)any的内置类型别名interface{}

到底是怎么回事?

Rag*_*ndy 12

问题出在 IDE 上。IntelliJ Goland 2021.2.4

我可以从命令行和 Playground 中构建代码

  • 是的,该修复已包含在较新版本的 GoLand 中,例如 2021.3.4 或 [EAP 版本](https://www.jetbrains.com/go/nextversion/)。 (4认同)