Kotlin 教學【從零開始學 Kotlin 程式設計】Inline 內聯函數

 

【從零開始學 Kotlin 程式設計】
線上教學課程目錄:https://bit.ly/2Kx7GrM
Youtube 課程播放清單:https://bit.ly/3qJ5a5Q

Inline內聯函數

在 Kotlin 中,使用函數當參數傳遞,記得將此函數前面加入 inline 關鍵字,可以降低資源消耗。若沒有使用 Inline 內聯此函數,會導致每個函數都被實體化 (Instance) 出來。

inline fun showGreeting(name: String, msg: String, greeting: (String, String) -> String) {
    println(greeting(name, msg))
}

fun main() {
    showGreeting("HKT", "今天過得好嗎?") { name: String, msg: String ->
        "哈囉~ $name, $msg"
    }
}

有加 inline 反編譯 showGreeting

...
...
...

public static final void main() {
  String name$iv = "HKT";
  String msg$iv = "今天過得好嗎?";
  int $i$f$showGreeting = false;
  int var5 = false;
  String var4 = "哈囉~ " + name$iv + ", " + msg$iv;
  System.out.println(var4);
}

...
...
...

可以看到原本呼叫函數要執行的內容,被複製到呼叫函數的地方。這就是加入 inline 的效果。

沒有加 inline 反編譯 showGreeting

...
...
...

public static final void main() {
      showGreeting("HKT", "今天過得好嗎?", (Function2)null.INSTANCE);
   }
...
...
...

反編譯可以看到,在沒有加入 inline 關鍵字的情況下,會出現 INSTANCE。


那這次的課程就介紹到這邊囉~

順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,加追蹤喔!也歡迎大家將這套課程分享給更多人喔。

我們下次再見囉!!!掰掰

這個網誌中的熱門文章

nano 文字編輯器

2023 最新入門零基礎 Kotlin教學【從零開始學 Kotlin 程式設計】Kotlin 教學課程目錄 (Android Kotlin, IntelliJ IDEA, Android Studio, Android APP 開發教學)

16天記下7000單字

Android Studio 歷代版本下載點

最新入門零基礎 Java 教學【從零開始學 Java 程式設計】Java教學課程目錄 (IntelliJ IDEA 開發教學)