Kotlin基礎之函數和變量

1. 函數

 fun max(a: Int, b: Int): Int {
        return if (a > b) a else b
 }

函數聲明以關鍵字fun開始,函數名稱max

 

在kotlin中,if是表達式,不是語句,表達式和語句的區別是:表達式有值,語句沒有值

Java中所有控制結構都是語句

Kotlin中除了循環以外大多數控制結構都是表達式

 

表達式函數體

 

可以用一個表達式作爲完整的函數體

 fun max(a: Int, b: Int): Int = if (a > b) a else b

如果函數體寫在花括號內,這個函數就有代碼塊體

如果返回了一個表達式,它就有表達式體

 

進一步簡化max函數,省略返回值類型

 fun max(a: Int, b: Int) = if (a > b) a else b

Kotlin作爲一門靜態類型語言,編譯器會分析作爲函數體的表達式,並把它的類型作爲函數的返回類型

注意:只有表達式函數的返回類型可以省略。對於有返回值的代碼塊體函數,必須顯示地寫出返回類型和return語句。

 

2.變量

在Java中聲明變量以類型開始,Kotlin中以關鍵字開始,然後是變量名稱

和表達式函數一樣,如果不指定變量的類型,編譯器會分析初始化器表達式的的值,並把它的類型作爲變量的類型

 

可變變量和不可變量

var(variable):可變引用   注: 這個單詞就是可變的意思

val(value):不可變引用  對應java中final變量

默認情況下,儘可能使用不可變引用 val,在定義val變量的代碼塊執行期間,val變量只能進行一次初始化

 

儘管val引用自身是不可變的,但是它指向的對象是可能變的

  val languages = arrayListOf("Java")
  languages.add("Kotlin")

 

3.字符串模板

字符串可以包含模板表達式,即一些小段的代碼,會進行求值,並把結果合併到字符串中。模板表達式一美元符($)開頭


        val i=100

        println("i=$i")

打印結果:i=100

 

或者使用花括號括起來的任意表達式

 val s="adb"
 val str="$s.length is ${s.length}"//執行結果爲“adb.length is 3”

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章