在前一篇文章中,我們完成了一個 Coroutine 的程式,並且在最後我們發現了兩個特點: 用 Coroutine 完成的程式碼可以讓非同步程式碼以同步的程式...
前面介紹的 Collection 類別裡,像 Array 或 List 都是以索引(index)做為取得元素的關鍵。但以數字為基礎的 index 雖然方便電腦做...
當我們在整理東西的時候,通常會拿有格子的容器,把同類型的東西一格一格的放好,方便我們儲存、排列或抽換。Collection(集合)就是程式語言裡的這種有格子的容...
Array 概念簡單,效能也很好,不過也因為它的限制比較多,所以除非真的有效能考量,不然一般會考慮使用其他的 Collection 物件,享受更豐富的功能。在這...
軟體開發與時俱進、推陳出新, 為了確保自己寫好的程式有更好的相容性,常會安裝多個版本的 JDK 來測試。雖然 IntelliJ IDEA 可以很方便的下載、管理...
在深入 Kotlin Collection 之前,我們需要先對 Kotlin 語法有基本的認識。因此在這篇文章裡,要先迅速讓大家學會 Kotlin 的基礎語法。...
在學習一個新的程式語言時,尤其是跟著範例寫的時候,由於對語法還不熟悉,時常會不小心把程式改壞。若是寫程式的時候,也可以有類似時光還原的功能,那該有多好?很幸運的...
Kotlin 是一個在 2011 年由 JetBrains 發表的全新程式語言,不過直到 Google Android 團隊在 2017 年宣佈其成為官方優先支...
每當學習一個新的程式語言時,首要任務就是學會建置開發環境。而不論哪一個程式語言,要建置開發環境大都包含兩個必要元素: SDK(Software develop...
Hi 各位好,又到了我們一年一度的 iT邦鐵人賽的挑戰,這次我所挑戰的主題是 Kotlin 中用來處理非同步的 lib Coroutine,中文名稱「協程」,是...
在前一篇文章我們知道 suspend 函式必須要在 Coroutine scope 裏面才能執行,本篇文章我們來了解一下兩個 Coroutine Builder...
上一章有提到,List 比 Array 更有彈性。與 Array 不同的是,List 可以明確地選擇是不可變的 List 或是可改的 MutableList。不...
LiveData 是 Android 中一個很有用的項目,它是一種可觀察(Observe)的資料存儲器類(data holder)。它會感知 Android 的...
在上一篇文章中,我們知道如果我們要以非同步的方式來執行,可以使用 Thread + callback 來寫,不過使用 Callback 可能會發生兩個問題,一是...
在所有的程式語言教學裡,通常第一個範例就是在 Terminal 印出「Hello, world」字樣。這個經典範例有 3 個訓練重點:了解如何建立程式、如何執行...
這幾天我們把 Coroutine 神秘的面紗好像掀開了一點,知道他是用來解決非同步程式的問題,也我們知道四個 Coroutine 的特點。Coroutine 的...
Coroutine 一個重要的特性就是可以輕易的切換執行緒,不過 Coroutine 是使用 CoroutineDispatcher (調度器) 來切換執行緒,...
在前面幾章的內容,我們都著重在 Kotlin Collection 各別的特點、宣告語法以及呼叫 Collection 的屬性及方法。接下來要開始深入了解 Co...
在處理資料時,順序有時是重要的。比方說,我們想要將 Collection 裡的數字從小到大來排,或是想將 Collection 裡的名字從 a 到 z 排。在比...
程式在執行的時候,有些時候我們會遇到一些例外的情況,我們一般會使用 try-catch 來攔截程式執行所拋出的例外,用 try-catch 攔截到之後,我們就可...
上一章我們討論的都是如何「讀取」 Collection 裡的元素,不過更多時候我們需要「修改」Collection 裡的內容,也就是如何新增元素到 Collec...
這次三十天的用KorGE開發自己的Kotlin小遊戲終於進到最終篇章囉! 相信各位對KorGE有一些些的認識,已經可以試著用這套遊戲引擎來開發你的小遊戲。 Ko...
在操作 Collection 時,很常需要把 Collection 裡的元素逐一取出,比方說把 List 裡的元素一個一個印出。寫過其他程式語言的朋友或許會很直...
還記得我們第一個 Coroutine 程式嗎? suspend fun showContents() = coroutineScope { launch...
前一篇文章中,我們介紹了 State Flow 以及它的使用方式,本篇將繼續討論 State Flow。 我們知道 SharedFlow 有提供一個函式能夠讓一...
State Flow 是從 Shared Flow 繼承而來的,跟 Shared Flow 不同的地方在於它是有初始值的,至少會重播一個值給訂閱者,所以它最少會...
好的好的,經過了前幾篇文章之後,想必大家應該對 Coroutine 有一些了解了吧,我在這邊快速複習一下。 Coroutine 是用來解決非同步程式的執行問題,...
在前面一系列的 Collection 操作章節裡,你會發現只要能客製化操作行為的 method,都是透過讓你傳入一個 Lambda 的方式達成。到底什麼是 La...
昨天我們使用了 shareIn 將 Flow 轉成 SharedFlow, 我們來研究一下這個函式。 public fun <T> Flow<...
在前面的章節裡有提到如何從 Collection 裡取值,不過在該章節裡我們討論的都是如何取「單一」值,但實務上常常要取的是多個值或是一段範圍的值,這時就要使用...