2 回答
TA贡献1806条经验 获得超5个赞
假设类型在不同的包中,您可以通过导出与不导出字段来做到这一点。名称以小写字母开头的字段不会导出,这意味着它在声明/定义的包之外不可见。因此,在这种情况下,如果用户存在于一个包中,则在另一个包user中声明另一种类型时调用它,您可以通过将定义更改为来实现这种“隐藏”属性;
type User struct {
ID string
username string
name string
password string
}
如果这两种类型存在于同一个包中,则无法将字段设为私有/隐藏/等,所有内容都将在该范围内可用。
TA贡献1772条经验 获得超5个赞
可以导出标识符以允许从另一个包访问它。如果同时满足以下条件,则会导出标识符:
标识符名称的第一个字符是 Unicode 大写字母(Unicode 类“Lu”);和
标识符在包块中声明,或者它是字段名称或方法名称。
不导出所有其他标识符。
给User
自己的包,不要导出密码。
例如,
package user
type User struct {
ID string
Username string
Name string
password string
}
func (u *User) IsPassword(password string) bool {
return password == u.password
}
- 2 回答
- 0 关注
- 199 浏览
添加回答
举报