Kotlin的编码风格

作者: SupLuo | 来源:发表于2017-05-24 09:21 被阅读47次

    1. 命名风格

    • 使用(camelCase)驼峰命名法,避免使用下划线
    • 类型以大写字母开头
    • 方法和属性以小写字母开头
    • 使用四个空格缩进
    • 公共部分应该添加描述,会出现在Kotlin的Doc中

    2. 冒号的使用

    • 当分隔类型和超类型时,冒号前面应该有一个空格
    • 当分隔实例和类型时,冒号前面没有空格
    interface Foo<out T : Any> : Bar {//第一条规则
          fun foo(a: Int): T //第二条规则
    }
    

    3. Lambda表达式

    • 大括号周围应该使用空格(左边大括号的左右以及右边大括号的左边使用空格)
    • 箭头两侧要使用空格
    • 尽可能的让表达式写在括号之外(即不推荐将表达式作为参数)
    list.filter { it > 10 }.map { element -> element * 2 }
    
    • 在没有嵌套并且比较短的表达式中,推荐使用it作为明确的参数申明
    • 在嵌套的表达式中,参数应该总是被明确的申明

    4. 类定义

    • 类只有少数参数时,可以写成一行
      class Person(id: Int, name: String)
    • 类有很多参数时,
      1. 每一个参数应该分行并且缩进书写。
      2. 右括号独立一行
      3. 如果使用了继承,那么超类的构造函数调用应该在同一行书写
    class Person(
              id: Int, 
              name: String,
              surname: String
    ) : Human(id, name) {
              // ...
    }
    
    4. 使用了继承并且实现了接口的情况,应该首先调用超类的构造函数,其次再为每一个实现的接口另起一行。
    
    class Person(
              id: Int, 
              name: String,
              surname: String
    ) : Human(id, name),
               KotlinMaker {
                // ...
    }
    

    5.构造函数参数可以使用常规缩进或连续缩进(双倍的常规缩进)。

    5. Unit

    如果一个方法的返回值是Unit,那么Unit可以省略不写。

    fun foo() { // ": Unit" is omitted here
    
    }
    

    6. 方法和属性的选择

    在某些情况下,没有参数的函数可能与只读属性可互换通用,虽然语义相似,但是有一些风格约束在某些情况该选择具体的方式,以下情况中,更喜欢使用属性而不是方法

    1. 不会抛出异常
    2. 具有O(1)的复杂性
    3. 容易计算(或者运行一次之后缓存结果)
    4. 每次调用返回同样的结果

    相关文章

      网友评论

        本文标题:Kotlin的编码风格

        本文链接:https://www.haomeiwen.com/subject/gwenxxtx.html