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

  • 相关阅读:
    关于学习c++服务端的进度,一边更新,一边学习
    Ubuntu20.04 用git上传GitHub文件
    省赛菜鸡打铜记
    Filename too long unable to checkout working tree warning: Clone succeeded, but checkout failed.
    java 对象转Json字符串 --- 报declares multiple JSON fields named XXX 解决方法
    配置win10电脑右下角任务栏时间显示时分秒
    HTTP与HTTPS
    为人三会 口才三绝 修心三不
    1093
    java项目clone后不显示maven
  • 原文地址:https://www.cnblogs.com/joejs/p/6889993.html
Copyright © 2011-2022 走看看