小道童 坐林间 朝闻道 悟一法

J神都已经加入Google的Kotlin组了,还等啥,抓紧学Kotlin啊。Kotlin日常。

定义静态变量、方法

class KotlinSingleton{
    companion object{
        private val kotlinSingleton = KotlinSingleton()
        
        @JvmStatic
        fun getInstance() = kotlinSingleton
    }
}

变长参数

fun hello(vararg names: String){

}

获得 class 的实例

val clazz = Hello::class.java
//or
val hello = Hello()
val clazz2 = hello.javaClass

方法

fun sum(a: Int, b: Int): Int {
  return a + b
}
  • 简化之
fun sum(a: Int, b: Int) = a + b

函数扩展

  • 扩展函数并没有对原类做修改,而是为被扩展类的对象添加新的函数
fun Date.isTuesday(): Boolean {
  return getDay() == 2
}

val tuesday = date.isTuesday();

-当原类和你拓展的方法名字一样时,按原类方法执行

  • Kotlin 的一个非常好的功能是,它会自动地转换有 getters 和 setters 综合属性的类型。所以能够替换 getDay() 为 day,因为这个 day 的属性是存在的,所以简化之
fun Date.isTuesday() = day == 2

包含 higher-order 函数的应用

fun  List.filter(predicate: (T) -> Boolean): List {
  val newList = ArrayList()
  for (item in this) {
    if (predicate(item)) {
      newList.add(item)
    }
  }
  return newList
}

val names = listOf("Jake", "Jesse", "Matt", "Alec")
val jakes = names.filter { it == "Jake" }

丫,有点抽象啊,想找视频了。


Over 四川地震了,突然想到如果你只能打一通电话 你会拨给谁

喂,我......

你可能感兴趣的:(小道童 坐林间 朝闻道 悟一法)