Go 如何在结构中嵌入初始化变量?
有没有一种好方法可以将初始化的结构变量嵌入到另一个结构中 考虑以下情况:Go 如何在结构中嵌入初始化变量?,go,Go,有没有一种好方法可以将初始化的结构变量嵌入到另一个结构中 考虑以下情况: type Account struct { AdminUser, AdminPass string } const ( acc1: "account_user", pass: "111222" ) var AccountDef = Account { AdminUser: "acc1", AdminPass: "pass1" } type Login struct { Acc *Account
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的模板
可以这样做吗?如果您希望登录包含来自帐户的字段,可以像这样嵌入它们:
我发现很难理解你想问的问题。也许我累了,也许你解释得不好。你能把它改写得更清楚些吗?在Go中有特定的含义,但我看不到您在这里使用嵌入式结构。你想这样使用它们吗?@JimB是的。我试图以这种方式使用它们,这样我就可以在Login结构中使用初始化的AccountDef,所以当我在带有newLogin或Login{}的函数中实例化时,我希望AdminUser和AdminPass都用默认值填充,这样我就不必为每个需要它的函数使用Login{AdminUser:acc1,AdminPass:pass1}。我可以考虑使用另一个私有函数来完成这项工作并调用它,但我想知道是否有比创建工厂函数更好的方法这听起来真的像是一种配置文件,带有管理员凭据,每次需要使用时都会加载这些凭据。我在源代码中对这些字符串有点不太理解。嗨,谢谢你的回答,但我要找的不是在每个函数中实例化默认值。举例来说,在你的例子中,我举例说明了20-30次。我希望有一个对构造函数的引用,而不是对构造函数的引用,所以如果初始化新的值,您希望使用具有特定值的帐户来代替它吗?如果是这样的话,就在一个有意义的范围内创建一个帐户。我不确定现在的问题是什么,或者这与嵌入有什么关系。也许可以试着创建一个例子,准确地展示你想要发生的事情。
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)
}