假设我有以下代码:
type User struct {
ID string
Username string
Name string
Password string
}
我想做的是创建另一个结构,它可以访问 User 结构中的某些字段,而不是访问所有字段,例如,以防止人们看到密码。 这不起作用:
type Note struct {
ID string
Text string
UserID User.ID
}
有什么方法可以做到这一点,还是我只是创建 Note.UserID 字段使其具有与用户结构中的 ID 相同的数据类型?
最佳答案
假设类型位于不同的包中,您可以通过导出或不导出字段来实现。名称以小写字母开头的字段不会导出,这意味着它在声明/定义它的包外不可见。因此,在这种情况下,如果用户存在于一个包中,则将其称为 user
而另一种类型在另一个包中声明,您可以通过将定义更改为来完成属性的“隐藏”;
type User struct {
ID string
username string
name string
password string
}
如果这两种类型存在于同一个包中,则无法将字段设为私有(private)/隐藏/等等,所有内容都将在该范围内可用。
关于go - 如何从 Golang 中的结构访问特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35444329/