对于仅包含函数/扩展方法的文件,是否存在建议的命名约定?

gvl*_*sov 11 naming kotlin

在Java中,它很简单:类型的文件名是类型加.java后缀的名称.

在Kotlin中,您可以编写不包含类的文件.是否有任何惯例来命名它们?

您还将如何命名这些功能的单元测试类?

小智 14

StringExt.kt对于扩展函数为String.的文件.

CollectionExt.kt 用于集合扩展功能.


Yoe*_*der 7

对于只有扩展功能的文件,根据文档中的源文件组织部分,您不应该创建这样的文件:

不要创建文件只是为了保存“Foo 的所有扩展名”。

相反,您应该将扩展放在它们扩展的类中或放在它们的客户端中。我个人认为该指南忽略了一个非常基本的用例:多个客户端的不属于您的类的扩展函数。还有那些依赖于你不想在扩展类所在的模块中引入的类的扩展函数。

在这种情况下,最好给出一个有意义的名称而不是FooExt.kt(如果所有这些扩展函数都有一个共同的目的)。如果没有,将它们全部保存在同一个文件中可能没有意义(参考指南,其中指出:“如果文件包含多个类,或仅包含顶级声明,请选择描述文件内容的名称包含,并相应地命名文件。”)。


Adi*_*ain 5

我喜欢WangJie的建议,Ext在文件名中添加后缀以表明它是一个包含扩展名的文件。(我个人会添加Extensions而不是,Ext但原则上它与王洁的建议相同。)

通过浏览Kotlin库中的文件,我看到有一些约定可以将要添加扩展名的类名或类类型复数,例如Arrays.ktCollections.ktMaps.ktMutableCollections .ktStrings.kt。该编码约定也证明暗指这一点。尤其要查看“ 源文件名”部分。