在Java中,它很简单:类型的文件名是类型的名称加上.java
后缀。
在Kotlin中,您可以编写不包含类的文件。是否有任何惯例来命名它们?
另外,您如何为这些功能命名单元测试类?
答案 0 :(得分:13)
StringExt.kt
表示扩展功能为String
的文件。
CollectionExt.kt
用于集合扩展功能。
答案 1 :(得分:2)
我喜欢WangJie的建议,在文件名中添加一个Ext
后缀以表明它是一个包含扩展名的文件。 (我个人将添加Extensions
而不是Ext
,但原则上它与WangJie的建议相同。)
我通过浏览Kotlin库中的文件可以看到,有一些约定可以将要添加扩展名的类名或类类型复数,例如Arrays.kt,Collections.kt,Maps.kt,MutableCollections.kt,Strings.kt。 Coding Conventions文档也暗指这一点。特别查看Source file names部分。
答案 2 :(得分:0)
对于仅具有扩展功能的文件,根据文档中的Source files organization部分,您不应创建以下文件:
请勿仅为了保留“ Foo的所有扩展名”而创建文件。
相反,您应该将扩展与扩展的类放在一起,或者放在扩展的客户端中。 我个人认为,该指南忽略了一个非常基本的用例:扩展函数,用于不属于您的多个客户端的类。还有一些扩展函数,它们依赖于您不想在扩展类所在的模块中引入的类。
在这种情况下,最好给出一个有意义的名称而不是json.courses.results
(如果所有这些扩展功能都有共同的目的)。如果没有,则将它们全部保留在同一个文件中可能没有任何意义(请参考this准则,其中指出:“如果文件包含多个类或仅顶层声明,选择一个描述文件包含内容的名称,然后相应地命名该文件。” )。