指定class去新增方法,project內的指定class就能擁有此方法
fun class.newMethod(){ //實作 }
指定class去新增Companion方法,project內的指定class就能擁有此方法
指定class去新增方法,project內的指定class就能擁有此方法
fun class.newMethod(){ //實作 }
指定class去新增Companion方法,project內的指定class就能擁有此方法
a.let{//回傳新物件,block中用it代表原本的物件(it.method()、it.value)
it = a
object?.let{ object is not null to do something }?: run{ object is null to do something }
//abstract 宣告 abstract class testAbstract{ abstract fun function1() } //abstract 實作 class extendsAbstract : testAbstract() { override fun function1() { Log.d("test","function1") } } 使用方法: extendsAbstract().function1() 輸出結果: function1
//介面宣告 interface testInterface{ fun function1() } //介面實作 class testClass:testInterface{ override fun function1() { } } 使用方法: testClass().function1() 輸出結果: function1
要可被繼承需要加上 open open class parent{ } class child :parent(){ }
class testClass(){ //預設參數 fun function(value1:Int=1,value2: Int=2){ Log.d("test", "function:"+value1+":"+value2) } }
使用方法:
函數預測參數
val a:Int = 8_8 //常數 不可轉換數值..底線為分隔觀看用(程式會省略) var b = 2 //不定義的變數 var c:Double = 2.5 // 8byte 浮點數 var d:Float = 3.5.toFloat() // 4byte 浮點數 var e:Long = 4 // 8byte 整數 var f:Int = 5 // 4byte 整數 var g:Short = 6 // 2byte 整數 var h:Byte = 7 // 1byte 整數 Log.d("test", a.toString()+":"+b+":"+c+":"+d+":"+e+":"+f+":"+g+":"+h)
輸出結果: 88:2:2.5:3.5:4:5:6:7
if語法 var a = 1 var b = 2 if(a<b) Log.d("test", "test1") if(a<b) { Log.d("test", "test2") }else{ Log.d("test", "test3") } var min = if(a<b) { Log.d("test", "test4") a //回傳值給min 要放最後面 }else{ Log.d("test", "test5") b //回傳值給min 要放最後面 } Log.d("test",min.toString()) when語法(可取代switch) 每行後面接有break的效果
var n = 2 when(n){ 2 -> Log.d("test", "test1") 2,3 -> Log.d("test", "test2") in 1..2 -> Log.d("test", "test3") !in 4..3 -> Log.d("test", "test4") else -> Log.d("test", "test5") }
for迴圈 var arr = intArrayOf(1,2,3,4); for ((index,value) in arr.withIndex()) //帶index和value Log.d("test", index.toString()+ " : " +value)
for (value : Int in arr) //帶value Log.d("123", value.toString()) while迴圈
var value = 10; while (value-- > 0) { Log.d("test", value.toString()) } do{ Log.d("test", value.toString()) }while (value-- > 0)