序言
推薦序
關於本書
- 本書的目標讀者
- 本書涵蓋的內容
- 如何使用本書
- 保持與時俱進
- 問題回報
贊助商
- CodeRabbit
第零章:Kotlin 語言
- Q) 0. 解釋 Kotlin 中的空值安全
- Q) 1. Any、Unit 和 Nothing 型別的主要作用是什麼?
- Q) 2. 什麼是資料類別,它與普通類別有何不同?
- Q) 3. 什麼是密封類別,並解釋其使用場景
- Q) 4. 什麼是內部類別,它與巢狀類別有什麼區別?
- Q) 5. 何時使用列舉類別?
- Q) 6. 什麼是值類別?
- Q) 7. 什麼是物件,它與普通類別有什麼區別?
- Q) 8. 什麼是伴生物件?
- Q) 9. var 和 val 有什麼區別?
- Q) 10. 幕後欄位和幕後屬性有什麼區別?
- Q) 11. 什麼是委託屬性?
- Q) 12. lazy 委託和 lateinit 有什麼區別?
- Q) 13. 存在哪些可見性修飾符?
- Q) 14. init 區塊何時被呼叫,它的關鍵特性是什麼?
- Q) 15. 什麼是高階函式,您可以獲得什麼優勢?
- Q) 16. inline 關鍵字的優點和限制是什麼?
- Q) 17. 什麼是 reified 關鍵字,使用它有什麼好處?
- Q) 18. 如何使用 lambda 運算式?
- Q) 19. 什麼是函式型(SAM)介面?
- Q) 20. 什麼是擴充,它有什麼優缺點?
- Q) 21. 什麼是結構相等性和參考相等性,它們有何不同?
- Q) 22. 執行 null + null 操作時會發生什麼?
- Q) 23. 什麼是 DSL,如何使用它?
第一章:Kotlin 標準函式庫
- Q) 24. Kotlin 中有哪些集合類型?
- Q) 25. 集合有哪些類型的轉換運算子?
- Q) 26. 解釋迭代器的機制
- Q) 27. 什麼是序列及其機制?
- Q) 28. 有哪些類型的擴充函式可用於取得集合的部分?
- Q) 29. 如何定義物件的排序?
- Q) 30. 什麼是作用域函式?
第二章:協程
- Q) 31. 什麼是協程?
- Q) 32. 什麼是續體,它與掛起函式內部如何關聯?
- Q) 33. 協程和執行緒有什麼區別?
- Q) 34. 什麼是協程建構器?
- Q) 35. 什麼是協程上下文?
- Q) 36. Job 的角色是什麼?
- Q) 37. 協程作用域的目的是什麼?
- Q) 38. 有哪些種類的協程調度器,它們的目的是什麼?
- Q) 39. 什麼是 Channel,它們如何運作?
- Q) 40. join() 和 yield() 函式是什麼?
- Q) 41. 如何在協程中處理例外?
- Q) 42. 冷流和熱流有什麼區別?
- Q) 43. 解釋 StateFlow 和 SharedFlow 的區別
- Q) 44. Flow.flowOn() 運算子做什麼?
- Q) 45. Flow.buffer() 運算子如何運作?
- Q) 46. Kotlin 的內部機制如何用 FusibleFlow 和 ChannelFlow 優化 Flow
- Q) 47. launchIn(Scope) 和 Scope.launch() 有什麼區別?
- Q) 48. 什麼是 Flow 轉換運算子:flatMapLatest、flatMapMerge、flatMapConcat?
- Q) 49. 什麼是 callbackFlow 和 channelFlow,以及它們的內部機制?
第三章 KotlinX 函式庫
- 問題 50. 什麼是 kotlinx-serialization,它是如何運作的?
- 問題 51. 什麼是 kotlinx-datetime,為什麼要使用它而不是 Java 時間 API?
- 問題 52. 什麼是 kotlinx-collections-immutable,什麼時候應該使用它?
- 問題 53. 還有哪些值得注意的 KotlinX 函式庫?
第四章:Kotlin 編譯器與外掛
- Q) 54. 什麼是註解處理器、KAPT 和 KSP?
- Q) 55. Kotlin 編譯器的結構是什麼?
- Q) 56. 什麼是 K2 編譯器?
- Q) 57. 什麼是 FIR(前端中間表示)?
- Q) 58. 什麼是 IR,Kotlin 後端如何運作?
- Q) 59. 如何編寫 Kotlin 編譯器外掛?
- Q) 60. 有哪些真實世界的 Kotlin 編譯器外掛範例和用例?
第五章:Kotlin 多平台
- Q) 61. 什麼是 Kotlin 多平台?
- Q) 62. Kotlin 多平台如何處理平台特定 API 並共享共用程式碼?
- Q) 63. Kotlin 多平台中有哪些並發或非同步程式設計策略?
- Q) 64. Kotlin 多平台中有哪些 HTTP 網路通訊策略?
- Q) 65. 什麼是 Compose Multiplatform?
- Q) 66. Kotlin 多平台專案中的原始碼集是如何組織的?
- Q) 67. Kotlin/Native 如何處理記憶體管理和平台互操作性?
- Q) 68. Kotlin 多平台中有哪些測試策略?
- Q) 69. Kotlin 多平台中有哪些依賴注入策略?