有没有一种很好的方法将初始化的结构变量嵌入到另一个结构中?如何在结构中嵌入初始化变量?
考虑以下情况:
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"
}
我想重用Login
AccountDef
,那么我想在另一个函数以实例LoginDef
然后用它来渲染模板像LoginDef.Acc.AdminUser
这是可以做到的?
我发现很难跟随你要问什么。也许我很累,或者你没有解释得很好。你能否更清楚地重写它? – Alasdair 2014-10-06 14:24:50
[嵌入](http://golang.org/doc/effective_go.html#embedding)在Go中有特定的含义,但我没有看到你在这里使用嵌入式结构。你是否试图以这种方式使用它们? – JimB 2014-10-06 14:34:54
@JimB是的。我试图以这种方式使用它们,这样我就可以在Login结构体中使用初始化的AccountDef,所以当我使用'new(Login)'或'Login {}''我想要'AdminUser'和'AdminPass'实例化用默认值填充,这样我就不必为需要它的每个函数使用'Login {AdminUser:“acc1”,AdminPass:“pass1”}'。我可以看看使用另一个私有函数来完成这项工作,并调用它,但想知道是否有更好的方法,而不仅仅是创建工厂功能 – 2014-10-06 14:45:45