gpt4 book ai didi

go - 在 Go 中,类型名称大写是惯例吗?

转载 作者:IT王子 更新时间:2023-10-29 00:55:32 30 4
gpt4 key购买 nike

在我见过的大多数 Go 程序中,即使是那些只有一个包的程序,类型的名称都是用大写字母写的,这使得它们被导出。

这只是一个约定来明确它们是类型还是需要导出所有类型?

最初我打算在此处放置导出类型的示例,但环顾一些流行的 Go 项目,到目前为止我找到了导出类型。因此,欢迎在相当大的 Go 项目中使用任何未导出类型的示例。

最佳答案

以大写字母开头的类型被导出到其他包。以小写字母开头的只能在包内使用。重要说明:可以在不导出实现接口(interface)的结构的情况下导出接口(interface)。

这不是导出类型的约定。仅当您允许它们在包外使用时才导出它们。在您提供的示例中,不需要导出 Server 类型,因为它没有导出的字段或方法。

仅导出属于与客户契约(Contract)一部分的类型。导出仅在内部使用的类型是错误的,并且会在文档中造成混淆。

编辑:

关于 Server 类型的一些说明。它实现了 http.Handler 接口(interface)(必须定义 ServeHTTP(http.ResponseWriter, *http.Request) ),因此可以使其不导出并使用该接口(interface)作为 NewServer 函数的返回类型。

关于go - 在 Go 中,类型名称大写是惯例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37840981/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com