zoukankan      html  css  js  c++  java
  • kotlin 语言入门指南(三)--编码习惯



    这章主要讲当前 kotlin 的一些编码习惯。

    命名

    如无疑问,kotlin 的命名风格与以下的java风格一样:

    --驼峰命名法(不要使用下划线)

    --类名首字母大写

    --方法和属性名首字母小写

    --四个空格缩进

    --公共方法要写文档注释

      

    冒号

     冒号分开类与父类时,要在冒号前面加空格,而分开类与实例时则不需要加。

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

    Lambdas

    lambda 表达式中,花括号前后要用空格隔开,而且,箭头前后也要有空格,以便区分参数与函数体。

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

    在单行 lambda 里,推荐在参数里用 it 关键字代替参数声明。而嵌套的 lambda 里参数就需要声明才能用。

    Class 头部格式化

    参数较少的 class 可以写成一行:

    class Person(id: Int, name: String)

    参数较多,头部较长的 class 可以将每个参数格式化成缩进式的一行一个,小括号可以另起一行。不过,如果我们在用继承,那么父类的构造函数调用里,或者实现的接口的list里,参数需要在括号内保持在一行:

    1 class Person(
    2     id: Int, 
    3     name: String,
    4     surname: String
    5 ) : Human(id, name) {
    6     // ...
    7 }

    至于多接口,超级父类构造函数的调用必须放在前面,其他的接口要另起一行:

    1 class Person(
    2     id: Int, 
    3     name: String,
    4     surname: String
    5 ) : Human(id, name),
    6     KotlinMaker {
    7     // ...
    8 }

    构造函数的缩进可以是常规的缩进,也可以是持续缩进(常规缩进的double).

    Unit

    如果一个函数返回类型是 Unit ,那么它的返回类型可以省略,不指定:

    1 fun foo() { // ": Unit" 在这里被省略了
    2 
    3 }

    Functions vs Properties

    在某些情况下,无参数的方法可以跟只读属性互换。尽管语义类似,在互换时还是有一些语法风格与使用习惯上的约定,在满足以下算法规则下时,支持方法与属性互换:

    --无抛出异常

    --复杂度为0(1)

    --简单运算

    --返回结果相同

    转载请注明原文地址:http://www.cnblogs.com/joejs/p/6889993.html

  • 相关阅读:
    Step by step Dynamics CRM 2013安装
    SQL Server 2012 Managed Service Account
    Step by step SQL Server 2012的安装
    Step by step 活动目录中添加一个子域
    Step by step 如何创建一个新森林
    向活动目录中添加一个子域
    活动目录的信任关系
    RAID 概述
    DNS 正向查找与反向查找
    Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
  • 原文地址:https://www.cnblogs.com/joejs/p/6889993.html
Copyright © 2011-2022 走看看