Git, if ifadesinde bir yapının başlatılmasıyla ilgili şikayetler. Niye ya? Geçici değişkenler veya yeni işlevler içermeyen bunun için doğru sözdizimi var mı?Neden bir if deyiminde struct creation öğesi Go'da yasa dışıdır?
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)
}
}
Hatası (if-ifadesi hattı üzerine): bekliyor: = veya = veya virgül
Bu aynı hata verir:
if auth2 := Auth {Username: "abc", Password: "123"}; auth == auth2 {
fmt.Println(auth)
}
Bu gibi çalışır sözdizimi hatası: Beklenmeyen bekleniyor:
auth2 := Auth {Username: "abc", Password: "123"};
if auth == auth2 {
fmt.Println(auth)
}
: eğer "LiteralType bileşik bir hazır kullanılarak typename bir şekilde anahtar kelime ve bir blok açılış destek arasındaki görüntülendiğinde bir ayrıştırma belirsizlik ortaya çıkan ve '', "for" veya "switch" deyimi, çünkü literaldeki ifadeleri çevreleyen parantezler, deyim bloğunu tanıtanlarla karıştırılır. Bu nadir durumda belirsizliği gidermek için, bileşik yazım parantez içinde görünmelidir. " - http://golang.org/ref/spec – mna