我對(duì) Go 有點(diǎn)陌生,所以這可能是 Go 問題,而不是 IntelliJ 問題:我剛剛設(shè)置了 https://github.com/go-lang-plugin-org/go-lang-idea- plugin/來自 zipfile,在 IntelliJ 14 中。我發(fā)現(xiàn)編譯器和語法高亮不一致。world, err := redis.String(c.Do("GET", "message1"))if err != nil { fmt.Println("key not found")}產(chǎn)生以下錯(cuò)誤消息。*沒有足夠的參數(shù)調(diào)用 Redis.String。仔細(xì)觀察對(duì) Redis.String 的調(diào)用,它似乎需要一個(gè) interface+args。func String(reply interface{}, err error) (string, error) { .... return "", fmt.Errorf("redigo: unexpected type for String, got type %T", reply)}因此,我可以通過簡(jiǎn)單地在調(diào)用末尾添加一個(gè)“錯(cuò)誤”參數(shù)來欺騙 IDE 刪除錯(cuò)誤消息,如下所示:world, err := redis.String(c.Do("GET", "message1"), err)但是唉!這個(gè)“修復(fù)”讓 go 編譯器不高興……它會(huì)報(bào)告這個(gè)消息(即使 IntelliJ 插件沒有將其解釋為錯(cuò)誤)。./t1.go:19: 單值上下文中的多值 c.Do()關(guān)于為什么 IntelliJ Go Plugin 需要兩個(gè) args 而 GoLang 只需要一個(gè) args 的任何想法,對(duì)于這個(gè)函數(shù)會(huì)有很大幫助。
- 1 回答
- 0 關(guān)注
- 248 瀏覽
添加回答
舉報(bào)
0/150
提交
取消