布尔返回方法的Kotlin命名约定

Joe*_*oel 14 naming-conventions kotlin

如何知道布尔返回方法的命名约定是什么?对于某些情况,使用'is','has','should','can'在方法前面的声音确定.但我不确定.有没有更好的方法来命名这样的方法?例如:检查卡的验证的功能.我应该称之为isValidCard或cardValidation还是其他名称?(我在这里找不到它:https://kotlinlang.org/docs/reference/coding-conventions.html)

Luk*_*kas 36

关于Kotlin中属性的命名约定的东西,我知道它不适用于方法.但它有关系:

来自Kotlin in Action(由Dmitry Jemerov和Svetlana Isakova撰写) - 第2.2.1节属性:

在Kotlin中,属性是一流的语言特性,它完全取代了字段和存取方法.

清单2.5.在类中声明一个可变属性:

class Person {
    val name: String,      // read only property: generates a field and a trivial getter
    var isMarried: Boolean // writable property: a field, getter and a setter
}
Run Code Online (Sandbox Code Playgroud)

Kotlin的name属性作为一个名为getName的getter方法暴露给Java.getter和setter命名规则有一个例外:如果属性名称以is开头,则不会添加getter的附加前缀,并且在setter名称中,is将替换为set.因此,从Java中,您调用isMarried().

  • 这比接受的答案更有帮助 - 谢谢! (5认同)
  • 作为参考,这也记录在此处:http://kotlinlang.org/docs/reference/java-to-kotlin-interop.html (3认同)

vod*_*dan 5

Kotlin 命名风格假定您使用 Java 命名约定进行可能的扩展。我建议您将此答案用于有关 Java 的同一问题。

更新:他们已经发布了编码约定 http://kotlinlang.org/docs/reference/coding-conventions.html


Jac*_*ace 5

对于那些使用属性前缀canshould在混合科特林/ Java项目等,也可以使用@get:JvmName使生成的Java方法的Java客户端更地道。

例如,假设你有一个这样的类:

class User(

    @get:JvmName("canView")
    val canView: Boolean

)
Run Code Online (Sandbox Code Playgroud)

如果没有注释,Java 客户端将被迫调用user.getCanView(),但现在他们可以调用更惯用的user.canView().