美文网首页
Kotlin编程规范

Kotlin编程规范

作者: CyrusChan | 来源:发表于2017-05-25 14:10 被阅读91次

    原文地址

    命名样式:

    <ul>
    默认为Java编码规范,例如:
    <li>对于名字使用驼峰式(并且避免使用下划线)
    <li>类型首字母大写
    <li>方法和属性首字母小写
    <li>使用4空格缩进
    <li>公共方法应该有文档例如Kotlin Doc中出现的那样
    </ul>

    冒号

    当冒号隔开父类和子类时这里有空格,但是当冒号隔开实例和类型时这里没有空格。

    interface Foo<out T : Any> : Bar {
       fun foo(a: Int): T 
    }
    

    Lambdas

    在lambda表达式中,空格应该被使用在花括号的旁边。和分割方法体外的箭头一样。只要可能,lambda应该在括号之外传递

    list.filter { it > 10 }.map { element -> element * 2 }
    

    简洁和非嵌套的lambda。推荐使用it而不是明确的声明参数。在带参数的嵌套lambdas中,参数应该被明确声明。

    Class header formatting

    带参数的类能够用一句话实现

    class Person(id: Int, name: String)
    

    带有较长头的类应该被格式化成每个主要的构造函数参数独占一行。并且右括号应该独占一行。
    如果我们使用继承,那么父类的构造函数和要实现的接口应该和右括号在同一行。

    class Person(
     id: Int,
     name: String,
     surname: String
     ) : Human(id, name) {
     // ... 
    }
    

    对于多接口,超类构造函数应该在第一行,其他的每一个接口应该另占一行。

    class Person(
     id: Int,
     name: String,
     surname: String
     ) : Human(id, name),
     KotlinMaker {
     // ... 
    }
    

    构造函数参数可以使用普通的缩进符或者两个普通的缩进符

    Unit

    如果一个函数返回unit,返回类型应该被忽略

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

    Functions vs Properties //注:并不是很明白这段

    在某些情况下无参函数和只读属性是可交换的。尽管语义相似。但是有些惯例供我们选择。
    下面的情况我们应该选用一个属性
    <ul>
    <li>无异常抛出
    <li>时间复杂度为O(1)
    <li>很容易计算或者第一次执行会被缓存
    <li>通过调用返回相同的结果
    </ul>

    相关文章

      网友评论

          本文标题:Kotlin编程规范

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