当前位置: 首页 > 知识库问答 >
问题:

对于只包含函数/扩展方法的文件,是否有推荐的命名约定?

许毅
2023-03-14

Java,很简单:类型的文件名是类型的名称加上. java后缀。

在Kotlin中,您可以编写不包含类的文件。有什么惯例来命名它们吗?

以及如何命名这些函数的单元测试类?

共有3个答案

曾元忠
2023-03-14

对于仅具有扩展功能的文件,根据文档中的“源文件组织”部分,不应创建以下文件:

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

相反,您应该将扩展与它们扩展的类放在一起,或者放在它们的客户机中。我个人认为,这条准则忽略了一个非常基本的用例:针对非您拥有的多个客户端的类的扩展函数。还有一些扩展函数,它们依赖于您不想在扩展类所在的模块中引入的类。

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

杜晨朗
2023-03-14

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

然而,通过浏览Kotlin库中的文件,我发现有一种惯例,即对正在添加扩展的类或类类型的名称进行多元化,例如数组。kt,集合。kt,地图。kt,可变集合。kt,弦。kt。编码约定文件也提到了这一点。请特别查看“源文件名”部分。

万俟渊
2023-03-14

StringExt。kt用于扩展函数为字符串的文件。

CollectionExt。kt用于集合扩展函数。

 类似资料:
  • 问题内容: 我有三个非常相似的控制器。我想要一个控制器,这三个控制器可以扩展并共享其功能。 问题答案: 也许 您 不扩展控制器,但是可以扩展控制器或将单个控制器混合为多个控制器。 创建父控制器后,其中的逻辑也将执行。有关更多信息,请参见$ controller(),但仅需要传递值。所有其他值将正常注入。 @mwarren ,Angular依赖注入自动解决了您的顾虑。您所需要做的就是注入$ scop

  • Requests 拥有很多强大有用的第三方扩展。这里概述了其中最好的几个。 Certifi CA Bundle Certifi 是一个精心准备的根证书集合,用来验证 SSL 证书的可信任度,同时还会验证 TLS 主机的身份。这是一个从 Requests 项目中剥离出来的项目。 CacheControl CacheControl 这个扩展能为 Requests 添加完整的 HTTP 缓存功能。这样你

  • 问题内容: 我想用PHP包装CSS文件…因此,我为CSS文件编写了标头,并给了它一个.php文件扩展名,因此… css.php。 如果该页面已被用作包含内容,是否可以使用?还是这个新标题与页面所包含的框架冲突? 问题答案: 加纳夫钉牢了它。 我做: 然后在您的.css.php文件顶部:

  • 问题内容: 这是我的方法: 表名是小写,下划线的用途来分隔词语,并且是单数(例如,等 我通常(并非总是)具有自动增量PK。我用下面的约定:(例如,等)。 当表包含作为外键的列时,我只需从它来自的任何表中复制该键的列名。例如,假设表格具有FK (的PK )。 在定义FK来强制引用完整性时,我使用以下代码:(例如,扩展示例3,它将是)。由于这是表名/列名的组合,因此可以保证它在数据库中是唯一的。 我按

  • 问题内容: 例如: 要么 这些名称或破折号有问题吗? 问题答案: 老实说,这取决于个人开发人员和他们自己的感受。就像您建议的那样,有两种同样好的构造CSS类的方法: 它们可以达到相同的目的,但是当您开始广泛思考时,您会发现这些样式之间的差距有多大。 分离班使他们可以重复使用: 该干的惯例是从不重复自己。通过分离or类,我们可以 重用 相同的类: 在第二种方法中-使用分隔符,代码将是: 在像这样的简

  • 我试图在IQueryable集合上使用Include扩展,但我有以下问题: 错误1'System.林克。IQueryable 我的代码: 方法返回-