J神都已經(jīng)加入Google的Kotlin組了登下,還等啥卓练,抓緊學(xué)Kotlin啊娶视。Kotlin日常晒哄。
定義靜態(tài)變量、方法
class KotlinSingleton{
companion object{
private val kotlinSingleton = KotlinSingleton()
@JvmStatic
fun getInstance() = kotlinSingleton
}
}
變長(zhǎng)參數(shù)
fun hello(vararg names: String){
}
獲得 class 的實(shí)例
val clazz = Hello::class.java
//or
val hello = Hello()
val clazz2 = hello.javaClass
方法
fun sum(a: Int, b: Int): Int {
return a + b
}
- 簡(jiǎn)化之
fun sum(a: Int, b: Int) = a + b
函數(shù)擴(kuò)展
- 擴(kuò)展函數(shù)并沒有對(duì)原類做修改歇万,而是為被擴(kuò)展類的對(duì)象添加新的函數(shù)
fun Date.isTuesday(): Boolean {
return getDay() == 2
}
val tuesday = date.isTuesday();
-當(dāng)原類和你拓展的方法名字一樣時(shí)揩晴,按原類方法執(zhí)行
- Kotlin 的一個(gè)非常好的功能是,它會(huì)自動(dòng)地轉(zhuǎn)換有 getters 和 setters 綜合屬性的類型贪磺。所以能夠替換 getDay() 為 day硫兰,因?yàn)檫@個(gè) day 的屬性是存在的,所以簡(jiǎn)化之
fun Date.isTuesday() = day == 2
包含 higher-order 函數(shù)的應(yīng)用
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" }
丫寒锚,有點(diǎn)抽象啊劫映,想找視頻了违孝。
Over 四川地震了,突然想到如果你只能打一通電話 你會(huì)撥給誰(shuí)
喂泳赋,我......