使用infix函式構建函式,可以使函式的呼叫有更強的可讀性。
在kotlin中我們可以使用a to b的方式來構建乙個鍵值對,但這裡的to並不是關鍵字,而是採用kotlin提供的一種高階語法糖規則進行了調整,a to b這樣的寫法其實等價於a.to(b),下面我們來看一看to()函式的原始碼吧,如下:
public
infix
fun a.
to(that:b)
:pair=
pair
(this
,that)
這裡使用定義泛型函式的方式將to()函式定義到a型別下,並接受乙個b型別的引數,建立並返回了乙個pair物件。在函式的前面加上infix函式,我們就可以使用a to b這樣的方式獲得乙個包含a、b資料的鍵值對物件了。
判斷字串是否是以某個引數開頭,標準寫法
val a=
"i am kotlin"
.startwith
("i"
)
使用infix構建
infix
fun string.
beginswith
(prefix:string)
=startswith
(perfix)
這裡我給string類新增了乙個beginswith()函式,呼叫startswith判定是否以某個引數開頭。
不同的是給它加上infix關鍵字後,beginswith()函式就變成了infix函式,我們就可以使用類似於a to b的語法糖形式來呼叫它。
val a=
"i am kotlin" beginswith "i"
Kotlin筆記高階函式(七)
kotlin筆記資料型別 一 kotlin筆記字串 二 kotlin筆記運算子 三 kotlin筆記函式 四 kotlin筆記物件導向 五 kotlin筆記繼承 抽象類 介面 六 二 lambda表示式 三 閉包與捕獲變數 四 內聯函式 乙個函式可以作為另乙個函式的引數,或者返回值,那麼這個函式就是...
Kotlin建構函式
當kotlin中的類需要建構函式時,可以有乙個主建構函式和多個次建構函式,可以沒有次建構函式。主建構函式在類名後。常規用法 class person name string 當主建構函式有註解或者可見性修飾符,需加 constructor 關鍵字。class personpublic public ...
kotlin高階函式
val list list listof 1,3,4,9 1.使用傳統的方式條件元素 var newlist arraylist list foreach it為list元素 2.使用map來進行元素操作返回乙個新的list val newlist list map it為list裡面的元素 3.m...