我对 Go 有点陌生,所以这可能是 Go 问题,而不是 IntelliJ 问题:我刚刚设置了 https://github.com/go-lang-plugin-org/go-lang-idea- plugin/来自 zipfile,在 IntelliJ 14 中。我发现编译器和语法高亮不一致。world, err := redis.String(c.Do("GET", "message1"))if err != nil { fmt.Println("key not found")}产生以下错误消息。*没有足够的参数调用 Redis.String。仔细观察对 Redis.String 的调用,它似乎需要一个 interface+args。func String(reply interface{}, err error) (string, error) { .... return "", fmt.Errorf("redigo: unexpected type for String, got type %T", reply)}因此,我可以通过简单地在调用末尾添加一个“错误”参数来欺骗 IDE 删除错误消息,如下所示:world, err := redis.String(c.Do("GET", "message1"), err)但是唉!这个“修复”让 go 编译器不高兴……它会报告这个消息(即使 IntelliJ 插件没有将其解释为错误)。./t1.go:19: 单值上下文中的多值 c.Do()关于为什么 IntelliJ Go Plugin 需要两个 args 而 GoLang 只需要一个 args 的任何想法,对于这个函数会有很大帮助。
- 1 回答
- 0 关注
- 213 浏览
添加回答
举报
0/150
提交
取消