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 <T> List<T>.filter(predicate: (T) -> Boolean): List<T> {
val newList = ArrayList<T>()
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 四川地震了,突然想到如果你只能打一通电话 你会拨给谁