1. 程式人生 > >Kotlin 日常小麻煩

Kotlin 日常小麻煩

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)
        }