Я несколько новых Пойти, так что это может быть проблемой Go, а не IntelliJ один: я просто настроить https://github.com/go-lang-plugin-org/go-lang-idea-plugin/ из ZipFile, в IntelliJ 14.Почему этот плагин Go-Lang IntelliJ несовместим с синтаксисом Go?
Я обнаружил, что компилятор не соответствует с подсветкой синтаксиса.
world, err := redis.String(c.Do("GET", "message1"))
if err != nil {
fmt.Println("key not found")
}
Уступает следующее сообщение об ошибке.
* Недостаточно аргументов при вызове Redis.String.
Приближаясь к вызову Redis.String, он принимает интерфейс + args.
func String(reply interface{}, err error) (string, error) {
....
return "", fmt.Errorf("redigo: unexpected type for String, got type %T", reply)
}
И таким образом, я могу обмануть IDE в удаление сообщения rror, просто добавив «ERR» ARG в конце вызова, например, так:
world, err := redis.String(c.Do("GET", "message1"), err)
Но Увы,! Это «исправление» делает компилятор go недовольным ... и он сообщает это сообщение (хотя плагин IntelliJ не интерпретирует это как ошибку).
./t1.go:19: множественное значение c.Do() в контексте одного значения
Любых мысли о том, почему IntelliJ Go плагин хочет два аргумента, wheresas только GoLang хочет один аргумент, поскольку эта функция будет очень полезной.
Имеет смысл, спасибо. На самом деле плагин хорошо работает для большинства других задач. – jayunit100