Kotlin 以其簡潔的特性而聞名,而在咱們的實踐中,更加簡潔就意味着更加高效。事實上,在使用 Kotlin 的專業 Android 開發者中,有多達 67% 的人表示 Kotlin 已經幫助他們提高了生產力。在接下來的內容中,我會分享一些 Kotlin 幫助咱們的合做夥伴工程師們提升生產力的方式,併爲您介紹有助於此的 Kotlin 功能。html
在使用 Kotlin 的專業 Android 開發者中,有多達 67% 的人表示 Kotlin 已經幫助他們提高了生產力android
Kotlin 的簡潔性對開發的各個階段都有影響:express
如下例子來自 Flipkart 的團隊:編程
"在一次內部調查中,50% 的開發人員提到,對於使用 Kotlin 編寫的模塊,預估完成功能所需的時間會有所減小。"設計模式
——Flipkart安全
因爲 Kotlin 的簡潔與高可讀性,大多數 Kotlin 的功能均可以提升生產力。下面讓咱們來看一些最經常使用的功能。app
在 Java 編程語言中,當您的構造函數中的某些參數是可選參數時,您一般會採用下面兩種方法之一:編程語言
在使用 Kotlin 時,因爲默認參數功能的存在,您無需使用這兩種方法。默認參數使您無需額外的樣板代碼便能實現函數重載。函數
對 Kotlin 的使用使得 Cash App 團隊能夠清除諸多構建器,從而減小了他們須要編寫的代碼量。在某些狀況下,代碼量被減小了 25% 之多。學習
舉個例子,下面的代碼是一個 Task
對象分別使用構建器及默認參數的實現方式。該 Task 惟一的必需參數是任務名 (name):
/* Copyright 2020 Google LLC. SPDX-License-Identifier: Apache-2.0 */ 3 - public class Task { - private final String name; - private final Date deadline; - private final TaskPriority priority; - private final boolean completed; - - private Task(String name, Date deadline, TaskPriority priority, boolean completed) { - this.name = name; - this.deadline = deadline; - this.priority = priority; - this.completed = completed; - } - - public static class Builder { - private final String name; - private Date deadline; - private TaskPriority priority; - private boolean completed; - - public Builder(String name) { - this.name = name; - } - - public Builder setDeadline(Date deadline) { - this.deadline = deadline; - return this; - } - - public Builder setPriority(TaskPriority priority) { - this.priority = priority; - return this; - } - - public Builder setCompleted(boolean completed) { - this.completed = completed; - return this; - } - - public Task build() { - return new Task(name, deadline, priority, completed); - } - } -} + data class Task( + val name: String, + val deadline: Date = DEFAULT_DEADLINE, + val priority: TaskPriority = TaskPriority.LOW, + val completed: Boolean = false +)
您能夠經過咱們的這篇 Kotlin Vocabulary | Kotlin 默認參數 瞭解有關默認參數的更多信息。
單例模式 大概是軟件開發者最經常使用的設計模式之一,它能夠幫助咱們建立一個對象的單個實例,而其餘對象能夠訪問和共享該實例。
建立單例時,您須要控制對象是如何被建立的,保證只存在一個實例並確保代碼的線程安全。而在 Kotlin 中,您只需使用一個關鍵字: object。
/* Copyright 2020 Google LLC. SPDX-License-Identifier: Apache-2.0 */ - public class Singleton{ - private static volatile Singleton INSTANCE; - private Singleton(){} - public static Singleton getInstance(){ - if (INSTANCE == null) { // Single Checked - synchronized (Singleton.class) { - if (INSTANCE == null) { // Double checked - INSTANCE = new Singleton(); - } - } - } - return INSTANCE; - } - private int count = 0; - public int count(){ return count++; } - } + object Singleton { + private var count = 0 + fun count(): Int { + return count++ + } + }
Kotlin 語言簡潔與簡單的特性,一樣體如今 操做符重載、解構 與字符串模板等功能中。這些功能使得代碼變得十分易讀。
舉個例子,假設咱們有一個圖書館和一些書。那麼從圖書館移除書籍並處理和打印書籍標題的操做,即可編寫爲下面這樣:
/* Copyright 2020 Google LLC. SPDX-License-Identifier: Apache-2.0 */ fun borrow(){ library -= book val (title, author) = book println("Borrowed $title") }
這裏用到的 Kotlin 功能有:
Kotlin 使得閱讀和編寫代碼變得簡單,它內建了諸如 單例 和 委託 這類模式的實現,從而能夠幫助咱們移除那些可能致使 bug 或增長維護成本的代碼。而像 字符串模板、lambda 表達式、擴展函數、操做符重載 這類功能則能夠使代碼更加簡潔明瞭。代碼編寫得更少意味着代碼的閱讀量變小,同時也意味着須要維護的代碼更少、錯誤也更少,從而帶來更高的生產力。
您能夠閱讀 使用 Kotlin 建立更好的 App 來了解更多,也能夠經過閱讀學習用例來了解開發者們是如何從 Kotlin 中獲益的。若是您要邁出使用 Kotlin (世界上最受歡迎的語言之一) 的第一步,請查閱咱們的 使用入門 頁面。