是的,Kotlin的類型推斷可以處理泛型。在Kotlin中,當你使用泛型類或函數時,你可以省略類型參數,編譯器會根據上下文自動推斷出具體的類型。這使得代碼更簡潔、易讀。
例如,假設你有一個泛型函數printList
,它可以打印任何類型的列表:
fun <T> printList(list: List<T>) {
for (item in list) {
println(item)
}
}
你可以直接調用這個函數,而不需要指定類型參數:
val intList = listOf(1, 2, 3)
val stringList = listOf("a", "b", "c")
printList(intList) // 編譯器會自動推斷出T為Int
printList(stringList) // 編譯器會自動推斷出T為String
同樣,對于泛型類,你也可以省略類型參數:
data class GenericBox<T>(val item: T)
val intBox = GenericBox(42) // 編譯器會自動推斷出T為Int
val stringBox = GenericBox("hello") // 編譯器會自動推斷出T為String
總之,Kotlin的類型推斷功能非常強大,它可以很好地處理泛型。