Bur*_*hi5 5 idioms private public idiomatic go
在Go中,公共名称以大写字母开头,私有名称以小写字母开头.
我正在编写一个不是库的程序,而且是一个程序包.是否有任何Go成语规定我的标识符是全部公开还是全部私有?我不打算将此软件包用作库或应该从其他Go程序导入的内容.
我想不出有什么理由想要混合物.它"感觉"像是私有化是正确的选择.
我认为我没有得到任何具体的答案,但是Nate最接近于告诉我要考虑"出口与非出口"而不是"公共与私人".
这让我相信不出口任何东西是最好的方法.在最糟糕的情况下,如果我最终从我的应用程序中导入另一个包中的代码,我将不得不重新考虑应该导出的内容和不应该导出的内容.这对IMO来说是件好事.
如果您试图调整自己的思维方式,使其更加符合 Go 语言习惯,那么您应该停止将变量、函数和方法视为公共或私有。更准确的说法是导出或不导出。它绝对有更像 C 的感觉。
正如其他人所说,应用程序代码实际上不需要导出。如果出于组织原因您决定将程序分成包,则可以使用子包。在工作中我们决定这样做。我们有:
projectgopath/src/projectname
projectname/subcomponent1
projectname/subcomponent2
Run Code Online (Sandbox Code Playgroud)
到目前为止我真的很喜欢这个结构。它有助于分离关注点,但不会达到在主项目之外制作包的程度。意图很明确。该子包的预期用途仅适用于该程序......
新的 go build 和 go install 命令似乎可以很好地处理它。我们将组件分组在包中,并通过导出仅公开必要的位。
| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |