Kotlin Extension 擴充

Evan Chen
Evan Android Note
Published in
May 17, 2022

Kotlin 的 Extension 讓你可以為既有的Class去加上一個 function,而不用去修改該Class的程式碼。

假設我們有一個 function用來處理金額的格式。例如傳入1000會回傳$1,000。像這樣常用的function,以前可能就會寫在一個 Util 的類別裡。

或是你有一個無法修改的既有類別MyClass,要新增 function 的話就只能去繼承它再新增 function:

這2 種其實都不是好的作法。把一堆常用的 function 都寫到 Util 裡,會讓這個類別變的很雜很大。而為了新增 function 使用繼承當然就更不好了。這時候我們就可以使用 Kotlin 的擴充Extension來達到在既有類別新增功能。

擴充函式

擴充的寫法是先寫一個 function,接著在 function 前面加上你想擴充在哪個類別。例如fun Int.dollarFormat() 就是指要擴充dollarFormat這個function 到 Int。

當然擴充的類別也支援 nullable

泛型Generics的擴充

寫成泛型,就能讓任何類別都能擴充這個function

例如像常用的applylet都是泛型的擴充

擴充屬性

你也可以擴充一個類別的屬性,例如我們擴充了 Int 這個類別,有一個屬性square是該Int的平方值。

--

--