如何在结构中嵌入初始化变量?

时间:2014-10-06 14:04:06

标签: go

有没有一种方法可以将初始化的struct变量嵌入另一个struct?

考虑以下情况:

type Account struct {
  AdminUser, AdminPass string
}

const (
  acc1: "account_user",
  pass: "111222"
)

var AccountDef = Account {
  AdminUser: "acc1",
  AdminPass: "pass1"
}

type Login struct {
  Acc *AccountDef
  Username, Password, Token string
}

var LoginDef = Login {
  Token: "adaasdasddas1123"
}

我想在AccountDef中重用Login,然后我想在另一个函数中实例化LoginDef,然后将其用于呈现LoginDef.Acc.AdminUser等模板

这可能吗?

1 个答案:

答案 0 :(得分:0)

如果您希望Login包含Account中的字段,您可以这样嵌入它们:

http://play.golang.org/p/4DXnIsILd6

type Account struct {
    AdminUser string
    AdminPass string
}

type Login struct {
    *Account
    Username, Password, Token string
}

func main() {
    acct := &Account{
        AdminUser: "username",
        AdminPass: "pass",
    }

    login := Login{Account: acct}

    fmt.Println("login.AdminUser:", login.AdminUser)
    fmt.Println("login.AdminPass:", login.AdminPass)
}