Go жалуется на создание экземпляра структуры в if-statement. Зачем? Есть ли правильный синтаксис для этого, который не включает временные переменные или новые функции?
type Auth struct {
Username string
Password string
}
func main() {
auth := Auth { Username : "abc", Password : "123" }
if auth == Auth {Username: "abc", Password: "123"} {
fmt.Println(auth)
}
}
Ошибка (в строке if-statement): синтаксическая ошибка: неожиданная:, ожидающая: = или = или запятая
Это дает ту же ошибку:
if auth2 := Auth {Username: "abc", Password: "123"}; auth == auth2 {
fmt.Println(auth)
}
Это работает как ожидалось:
auth2 := Auth {Username: "abc", Password: "123"};
if auth == auth2 {
fmt.Println(auth)
}