Go は、if ステートメントで構造体をインスタンス化することについて文句を言います。なんで?一時変数や新しい関数を含まない正しい構文はありますか?
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 ステートメント行): 構文エラー: 予期しない :、予期:= または = またはコンマ
これにより、同じエラーが発生します。
if auth2 := Auth {Username: "abc", Password: "123"}; auth == auth2 {
fmt.Println(auth)
}
これは期待どおりに機能します。
auth2 := Auth {Username: "abc", Password: "123"};
if auth == auth2 {
fmt.Println(auth)
}