變數(variable)
1.不可改變的變數
val 變數名稱: 型態 = 初始值
2.可以改變的變數
var 變數名稱: 型態 = 初始值
example:
val x: Int = 3 // 使用val宣告不可改變的變數
val y = 5 // 使用設定值推論變數型態
val z: Int // 沒有設定值的變數就一定要指定型態
z = 7 // 設定值以後就不可以改變
println("X: " + x)
println("Y: " + y)
println("Z: " + z)
// 下面的敘述都會造成錯誤: Val cannot be reassigned
/*
x = 13
y = 15
z = 17
*/
var v: Int = 3 // 使用var宣告可以改變的變數
v = 13 // 不會發生錯誤
println("V: " + v)
方法
預設是final, public
加上open 表示 可以被override
fun 函式名稱(參數名稱: 參數型態,...): 回傳型態 {
}
定義類別
預設是final
加上open 表示 class可以被繼承 (如同Java的一般class )
class className() {
}
NULL SAFETY
可在 compile time 就檢查變數是否為 null, 用來避免 NullPointerException (NPE)
? 表示 nullable
default 是 non null
var order : Order? = Order() //order 可為null
println(order?.price) // 10
println(order.price) // compile erorr
order =null
println(order?.price) // 印出null (不會NPE)
open class Order() {
var price =10
}
OPERATOR OVERLOADING
- a==b -> a.equals(b)
- a in b -> a.contains(b)