在kotlin高階函式中,我們了解到lambda表示式實際上是會帶來額外的記憶體和效能開銷的。
而內斂函式的作用就是將lambda表示式帶來的執行時開銷完全消除。
只需要在定義高階函式時加上inline關鍵字即可。
inline fun num1andnum2(num1: int, num2: int, operation: (int, int) ->int): intkotlin編譯器會將內聯函式中的**在編譯的時候自動替換到呼叫它的地方,這樣也就不存在執行時的開銷了。
第一步: lambda表示式中的**替換到函式型別引數呼叫的地方。
第二步:再將內聯函式中的全部**替換到函式呼叫的地方。
最後的**就被替換成如下:
所以內聯函式完全消除了lambda表示式帶來的執行時開銷。
C 內斂函式
在主調函式呼叫函式時,先將現場壓入棧以儲存現場 轉去執行被掉函式 返回主調函式 現場出棧以恢復現場 繼續往下執行。為了減少函式呼叫的成本,特別是對於小型函式,c 提供了內斂函式 inline c 規定 若要在程式中應用內斂函式,需要 在首次出現函式名稱時,在相應的函式定義或函式宣告中的函式型別前面加...
kotlin學習二 函式
宣告 funfun double x int int入口函式 mainfun main 引數 name type 函式引數使用 pascal 表示法定義,即 name type。引數用逗號隔開。每個引數必須有顯式型別 fun powerof number int,exponent int 預設引數 ...
Kotlin學習4 3 建構函式
在kotlin中,建構函式用 constructor 關鍵字進行修飾,乙個類可以有乙個主建構函式和多個次建構函式。主構函式位於類頭跟在類名之後,如果主建構函式沒有任何註解或可見性修飾符 如public constructor 關鍵字可省略。主構函式定義的語法格式如下 class 類名 constru...