Golang OOP信息隐藏实践

时间:2018-02-17 01:52:12

标签: oop go struct

如何使用Go struct隐藏信息? Go struct成员对所有人都可见。如何隐藏包中的成员?

1 个答案:

答案 0 :(得分:2)

Go不是面向对象的语言。但它封装了包级别的东西。

根据GoLang specification; -

  

可以导出标识符以允许从另一个标识符访问它   包。如果两者都导出标识符:

     
      
  1. 标识符名称的第一个字符是Unicode大写字母   字母(Unicode类" Lu");和
  2.   
  3. 标识符在包块中声明,或者是字段   名称或方法名称。
  4.         

    不会导出所有其他标识符。

如果您不想公开您的结构变量,请不要导出它们。使用小写在结构类型中创建变量。 未导出的结构字段只能由同一个包访问。

// unexported struct
type person struct {
    name string // unexported fields can be used only in the same package
    age  int
}

Go中只允许包级别粒度。可以在不同的包中声明struct,可以在任何需要的文件中使用