go - 如何从 Golang 中的结构访问特定字段

标签 go struct

假设我有以下代码:

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/

相关文章:

go - 为什么 Golang 在使用不同的输出函数时显示不同的值

go - "Bounded"在编程中的含义

c - 如何从实现文件访问头文件中定义的结构?

json - 具有未知键的 Unmarshall JSON 上的空结构

c - 没有编译错误,但给定输入时崩溃

pointers - 为什么在 golang 中不允许对 slice 指针进行索引

go - 如何处理客户端超时错误?

比较结构体的两个实例

C++ 使用字符串项在列表中查找结构?

mongodb - Golang mgo 获取空对象