原创 快速上手 Kotlin 開發系列之構造函數

本節介紹 Kotlin 的類的聲明以及構造函數 類的聲明 在前面的文章中簡單的介紹過類的聲明,我們來回顧下。 與 Java 類似,同樣使用 class 關鍵字來聲明一個類,後面緊跟着類名,如果該類有父類的話使用 : 分割,如果

原创 快速上手 Kotlin 開發系列之Lambda閉包

本節討論 Kotlin 的 Lambda 閉包、以及它的聲明和原理 Lambda 閉包 我們先看一個 Java 中非常常見的例子,就是創建一個子線程: 我們知道 Java 8 也是有 Lambda 支持的,它可以把 Runn

原创 快速上手 Kotlin 開發系列之伴生對象

本節將介紹 Kotlin 中的訪問修飾符、伴生對象以及推薦單例的寫法。 訪問修飾符 在 Kotlin 中有四種訪問符: public protected private internal 前面三種有 Java 基礎的讀者肯

原创 快速上手 Kotlin 開發系列之函數與函數嵌套

在前面的文章中簡單地介紹了 Kotlin 中函數的聲明,本節將介紹 Kotlin 另外一種語法特性:函數嵌套 函數語法 函數聲明 即使 Kotlin 是一門面向對象的編程語言,它依然保留了函數這樣的概念,不像 Java 中,僅

原创 快速上手 Kotlin 開發系列之與 Java 互調 (1)

學習完基礎語法之後,我們來學習下 Java 和 Kotlin 互相調用的問題 本節將介紹 Kotlin 與 Java 之間的語法變化 Kotlin 文件中的函數 首先讓大家感到非常不適應的一點是,Kotlin 的函數居然可以直

原创 快速上手 Kotlin 開發系列之與 Java 互調 (2)

本節將介紹 Kotlin 和 Java 互調過程中封裝類、空值敏感以及靜態變量和靜態方法的處理 Kotlin 沒有封裝類 首先看看以下代碼。 我們用 Java 創建一個接口,如下: 之後我們創建一個 A.java 實現這個接

原创 快速上手 Kotlin 開發系列之操作符

本節介紹操作符的實現原理以及一些常用的操作符。 爲了方便理解,我們把作用域函數和集合操作符統稱爲 Kotlin 的操作符。 操作符的實現原理 作用域函數與集合操作符的原理是完全一致的,這裏以集合操作符作爲一個例子來看整個作用域

原创 快速上手 Kotlin 開發系列之中綴表達式

本節介紹 Kotlin 的中綴表達式。 通過上一節我們知道運算符的數量是有上限的,雖然跟隨 Kotlin 版本迭代會有相應的變化但是對開發者而言還是固定的,因此當運算符不夠的時候我就需要通過中綴表達式的形式去擴展我們所需要的邏

原创 快速上手 Kotlin 開發系列之運算符重載

本節介紹 Kotlin 的運算符重載。 在 Kotlin 中有非常多的運算符是通過重載來完成的,例如用於 String 拼接的 +,for 循環中的 ..。 運算符重載 我們看下面的示例,for 循環中遍歷 1 到 100,其

原创 快速上手 Kotlin 開發系列之集合操作符 (1)

本節通過 RxJava 的集合操作引入 Kotlin 的集合操作符。 如果大家有用過 RxJava 一定對操作符的概念並不陌生,RxJava 允許我們對數據做一系列的鏈式調用,在每一步中改變數據的格式,最終得到我們想要的數據。

原创 快速上手 Kotlin 開發系列之循環

本節介紹 Kotlin 的循環語法。 下面的示例是我們最熟悉的循環語法,但是這種語法在 Kotlin 中是不能使用的。 不過沒有關係,在 Kotlin 中有更多適合的語法供我們選擇。 以下列出 5 種 Kotlin 中常用的

原创 快速上手 Kotlin 開發系列之數據類和枚舉

本節討論 Kotlin 的數據類、枚舉類和密閉類。 數據類 數據類是 Kotlin 中很特殊的一種類,它可以將我們類中的成員變量自動的生成 getter/setter 方法,以及我們經常需要重寫的 toString()、has

原创 快速上手 Kotlin 開發系列之解構

本節介紹 Kotlin 中特殊的數據拆箱方式:解構。 解構 在 Kotlin 中允許直接將一個類拆解之後並分別賦值,就像示例中的 User 對象一樣,可以賦值給一個拆解開的 age 和 name 變量。 解構的格式固定,va

原创 快速上手 Kotlin 開發系列之動態代理

本節介紹 Kotlin 中沒有反射的動態代理。 Java 中的動態代理 在講 Kotlin 的動態代理之前先簡單回顧下 Java 的動態代理,通過一個簡單的例子說明下: 首先,給出一個接口和其實現類: 爲了可以動態代理某個對

原创 快速上手 Kotlin 開發系列之高階函數和內聯

本節討論 Kotlin 高階函數以及內聯的使用 高階函數 高階函數就是指函數或者 Lambda 的參數又是一個函數或者 Lambda。 通過下面示例簡單的瞭解下。首先,高階函數也是函數,所以同樣需要使用 fun 關鍵字來修飾,