Kotlin 日常小麻煩
阿新 • • 發佈:2018-12-06
kotlin 日常遇到的麻煩 新手入坑 請多指教
1. 匿名內部類:
lambda表示式匿名內部內
val kt = object :KTName(){ //TODO 實現 } var race2: Runnable = Runnable { println("Hello world !") } private val mOnCheckedChangeListener: RadioGroup.OnCheckedChangeListener = RadioGroup.OnCheckedChangeListener { group, rid -> }
2. 繼承類:
//這裡class 修飾詞語有 open 和deta class DataModel(var string:String = "sss",str:String?): Model(str){ constructor() : this("xxx", null) //init 是預設構造方法實現函式 可以使用 類名上定義的 string 和 str init{ } //這裡是寫靜態方法的 companion object { val a = 100 } } //open表示可繼承 open class Model(str:String){ init{ print(str) } } //data 表示是個資料型別 這裡必須有一個數據通過構造方法傳入 data class Data(var str:String){ }
3. 序列化:
//kotlin 這個物件需要導包
java.io.Serializable
4. 迴圈: for forEach
for (item in collection) print(item) val string = arrayListOf(1,2).let{ //咋不變顏色呢 string.forEach { } } for (i in 0..index) { } //在這裡迴圈8次為0至7 for(i in 0..7 [step 1]){ } //與前面第一個相反,也是閉區間 for(i in 7 downto 0 [step -1]){ } //在這裡迴圈7次為0至6 //kotlin真的是為開發者著想的 //多出這一個是為陣列歷遍而設計的 for(i in 0 until 7){ } 連結:https://www.jianshu.com/p/841ba165fe54
5. 當遇到數字大於Kotlin數的值得時候
參考文章 : https://blog.csdn.net/Mingyueyixi/article/details/78093184
val color = 0xEE000000.toInt()
6. Kotlin 裡面是沒有陣列這種說法的 可以這樣寫
private val integers = arrayOfNulls<Int>(4)
val string = arrayOf(1,2.3)
val string = arrayListOf(1,2)
val string = arrayListOf<Int>()
7. 可變陣列 vararg
看到這個*了嗎 傳入java的時候需要些個 * 我搞不懂為啥要這樣
fun ofFloat(propertyName: String, vararg values: Float) {
val anim = ObjectAnimator()
anim.target = null
anim.propertyName = propertyName
anim.setFloatValues(*values)
}