特殊点( 其实很多东西可以参考groovy的!)

  • kt 的数组比较特殊
  • 闭包的 foreach
  • for 里面有 in
  • if 里面也有 in
  • .. until downTo step
  • 0 until array.size 数组的遍历,直接indices
  • 可变不可变(oc 里面有这个概念)mutable
  • map 里面有 to(这个好像是关键字),mapOf
  • typealias 类型别名
  • list 的 += 和 groovy 有点像
  • map 赋值和 js 一样
  • pair 还有 解构 triple
  • vararg 可变长度参数
  • class 有主构造器之说,还有次,init
    • open可以被复写,没加不可以override
    • 继承需要,类需要加 ()
    • final 不能override
  • 函数有receiver
  • 空类型
    • var nullable:String?=”hello”
    • val length=nullable!!.length//确定不为空,用两个感叹号
    • val length = nullable?.length//为null时返回null
    • null?:0//elvis运算符
  • as 强制转换
  • 类型转换有范围,
  • as? 转换失败就是null
  • data 数据类
  • if else 表达式
  • when 表达式 可以 c =
  • try catch 也是表达式
  • 中缀表达式 to infix
  • String window函数
  • 高阶函数return
  • non-local return crossinline
  • 内联属性
  • 函数 let, run, also, apply, use
  • 集合的变换,java 里面也有,fitler,flatmap,sum,reduce,fold
  • sam java和kotlin 关联在一起
  • 代理用 by