Kotlin類型推斷能處理泛型嗎

小樊
82
2024-11-03 06:56:44

是的,Kotlin的類型推斷可以處理泛型。在Kotlin中,當(dāng)你使用泛型類或函數(shù)時(shí),你可以省略類型參數(shù),編譯器會(huì)根據(jù)上下文自動(dòng)推斷出具體的類型。這使得代碼更簡(jiǎn)潔、易讀。

例如,假設(shè)你有一個(gè)泛型函數(shù)printList,它可以打印任何類型的列表:

fun <T> printList(list: List<T>) {
    for (item in list) {
        println(item)
    }
}

你可以直接調(diào)用這個(gè)函數(shù),而不需要指定類型參數(shù):

val intList = listOf(1, 2, 3)
val stringList = listOf("a", "b", "c")

printList(intList) // 編譯器會(huì)自動(dòng)推斷出T為Int
printList(stringList) // 編譯器會(huì)自動(dòng)推斷出T為String

同樣,對(duì)于泛型類,你也可以省略類型參數(shù):

data class GenericBox<T>(val item: T)

val intBox = GenericBox(42) // 編譯器會(huì)自動(dòng)推斷出T為Int
val stringBox = GenericBox("hello") // 編譯器會(huì)自動(dòng)推斷出T為String

總之,Kotlin的類型推斷功能非常強(qiáng)大,它可以很好地處理泛型。

0