測試頁面
這是一個包含圖片的區塊(取自 Compose Multiplatform 快速入門 教學)。
使用 Kotlin 建立 Spring Boot 專案
在 Spring Boot 專案中新增資料類別
為 Spring Boot 專案新增資料庫支援
使用 Spring Data CrudRepository 進行資料庫存取>
同步索引標籤
plugins {
kotlin("kapt") version "1.9.23"
}plugins {
id "org.jetbrains.kotlin.kapt" version "1.9.23"
}plugins {
kotlin("plugin.noarg") version "1.9.23"
}plugins {
id "org.jetbrains.kotlin.plugin.noarg" version "1.9.23"
}區段
摺疊區段
這裡有一些文字和一個程式碼區塊:
plugins {
kotlin("plugin.noarg") version "1.9.23"
}程式碼區塊
這只是一個程式碼區塊:
import java.util.*
@Service
class MessageService(val db: MessageRepository) {
fun findMessages(): List<Message> = db.findAll().toList()
fun findMessageById(id: String): List<Message> = db.findById(id).toList()
fun save(message: Message) {
db.save(message)
}
fun <T : Any> Optional<out T>.toList(): List<T> =
if (isPresent) listOf(get()) else emptyList()
}可展開的程式碼區塊
package com.example.demo
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController
@SpringBootApplication
class DemoApplication
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args)
}
@RestController
class MessageController {
@GetMapping("/")
fun index(@RequestParam("name") name: String) = "Hello, $name!"
}可執行的程式碼區塊
data class User(val name: String, val id: Int)
fun main() {
val user = User("Alex", 1)
// 自動使用 toString() 函式,以便於閱讀輸出內容
println(user)
// User(name=Alex, id=1)
}表格
Markdown 表格
| 原始型別陣列 | Java 中的對應項 |
|---|---|
BooleanArray | boolean[] |
ByteArray | byte[] |
CharArray | char[] |
DoubleArray | double[] |
FloatArray | float[] |
IntArray | int[] |
LongArray | long[] |
ShortArray | short[] |
XML 表格
| 最後修改於 | 2023 年 12 月 |
| 下次更新 | 2024 年 6 月 |
內含程式碼區塊的 XML 表格
簡單表格:
| 之前 | 現在 |
kotlin | kotlin |
更複雜的表格:
| 之前 | 現在 | |
jvmMain 編譯的相依性 | kotlin | kotlin |
kotlin | kotlin | |
jvmMain 原始碼集的相依性 | kotlin | |
jvmTest 編譯的相依性 | kotlin | kotlin |
jvmTest 原始碼集的相依性 | kotlin | |
清單
有序清單
第一點
第二點
第三點
- 第三點之 1
- 第三點之 2
- 第三點之 3
- 第三點之 1 與 1
內含程式碼區塊:
kotlinjvmTest<Scope>
無序清單
第一個項目
第二個項目
第三個項目
- 還有一個
- 另一個
- 哇,還有一個
內含程式碼區塊:
kotlinjvmTest<Scope>
定義列表
可摺疊項目 #1
CrudRepository 介面中 findById() 函式的傳回型別是 Optional 類別的執行個體。然而,為了保持一致性,傳回包含單一訊息的 List 會更方便。為此,您需要解開 Optional 值(如果存在),並傳回包含該值的列表。這可以實作為 Optional 型別的 擴充函式。
在程式碼 Optional<out T>.toList() 中,.toList() 是 Optional 的擴充函式。擴充函式允許您為任何類別編寫額外的函式,當您想要擴充某些程式庫類別的功能時,這特別有用。
可摺疊項目 #2
此函式的工作原理是假設新物件在資料庫中沒有 ID。因此,插入時 ID 應為 null。
如果 ID 不是 null,CrudRepository 會假設該物件已存在於資料庫中,且這是一個更新操作,而非插入操作。在插入操作之後,id 將由資料存儲產生並重新指派給 Message 執行個體。這就是為什麼 id 屬性應使用 var 關鍵字宣告的原因。
文字元素
變數
- 變數使用:最新 Kotlin 版本為 2.4.10
嵌入元素
來自 YouTube 的影片
圖片
一般 (Markdown):

一般 (XML):

行內:
![]()
可縮放:
按鈕樣式:

備註
警告:
kapt 編譯器外掛程式中對 K2 的支援處於實驗性階段。 需要選擇性加入(opt-in,詳見下文),且您應僅將其用於評估目的。
備註:
至於 Kotlin/Native 隨附的原生平台程式庫(如 Foundation、UIKit 和 POSIX),只有部分 API 需要透過
@ExperimentalForeignApi進行選擇性加入。在這種情況下,您會收到一則帶有選擇性加入要求的警告。
提示:
至於 Kotlin/Native 隨附的原生平台程式庫(如 Foundation、UIKit 和 POSIX),只有部分 API 需要透過
@ExperimentalForeignApi進行選擇性加入。在這種情況下,您會收到一則帶有選擇性加入要求的警告。
