猿问

为什么在 Go 中的 if 语句中创建结构是非法的?

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)

}


守着星空守着你
浏览 178回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答