kotlin 纪要 有更新!

  cheney

    • 单例模式使用 object 声明,不再写成 class。
    • 单例模式没有构造函数,使用 init 做初始化。
    • 类的静态方法放在 companion object
    • 函数也是对象,可以作为参数和返回值
    • ambda中花括号内前后都应该有空格
    • 空值安全检查 var s: String? = null;当一个变量允许为空值时,必须使用?来声明
    • 当?:左边表达式不为空时,返回表达式的值,否则执行?:右边表达式的值
    • as? 安全类型转换,转换失败会返回null
    • lambda表达式相当于一个函数 fun add(x :Int,y :Int) : Int = x + y
    • lambda 可写成 val add(Int , Int) -> Int = { x , y -> x + y }
    • 没有返回值的函数,显式指定Unit为返回值
    • is运算符来检查数据类型和类型转换
    • in操作符检查一个数是否在某个范围内
    • vararg 可变参数
    • $字符串模版
    • 位运算符: or 或 / and 与 / shl有符号左移 / shr 有符号右移 / ushr 无符号右移 / xor 按位异或 / inv 按位取反
    • downTo 递减,循环可用,每次减1
    • step 步长 ,循环时可用,设置每次循环的增加或减少的量
    • switch 被 when 完全替代了,可以匹配值,范围,类型与参数
    • if-else   Kotlin中的if-else: val min = if(a
    • Kotlin没有检验异常,它的throw和try都是表达式,意味着它们可以赋值给某个变量,这点在处理边界问题的时候很有用。
    • lambda 的类型是 () -> Unit , 表示无参无返回的 lambda, (Stirng) -> String , 表示参数为字符串返回是字符串的 lambda 。
    • 只能重写 open 的方法
    • import 重名可以 使用 as 指定别名
    • 不能 import object 的 *
    • Kotlin中没有 synchronized 关键字
    • Kotlin中没有 volatile 关键字
    • 类型后面加问号表示可为 null, 比如 String 和 String? 实际上是两种类型,如果一个 String? 变量强转为 - - String,添加 !!
    • 没有 super() ,super 至能用来做左值
    • `` 中不能包含 []. 三种字符
    • main 函数要写在单例类中,用 @JvmStatic 注解
    object LearnKotlin { @JvmStatic fun main(args: Array) { }}