Kotlin 泛型允許你編寫可以處理多種數據類型的通用代碼。Kotlin 泛型通過類型參數(type parameters)實現,這些類型參數在定義泛型類、接口或函數時使用。類型參數在實例化時被具體的類型替換。
以下是 Kotlin 泛型處理不同類型的一些示例:
class Box<T>(val value: T) {
fun getValue(): T {
return value
}
}
在這個例子中,T
是一個類型參數,表示任何類型。你可以使用不同的類型實例化這個類,例如:
val intBox = Box<Int>(42)
val stringBox = Box<String>("Hello, Kotlin!")
fun <T> printMax(a: T, b: T): T {
return if (a > b) a else b
}
在這個例子中,<T>
表示函數接受兩個類型為 T
的參數,并返回一個類型為 T
的值。你可以使用不同的類型調用這個函數,例如:
val maxInt = printMax(10, 20) // maxInt 的類型是 Int
val maxString = printMax("apple", "banana") // maxString 的類型是 String
interface Comparable<T> {
fun compareTo(other: T): Int
}
在這個例子中,<T>
表示接口中的 compareTo
方法接受一個類型為 T
的參數,并返回一個 Int
類型的值。實現這個接口的類型需要提供 compareTo
方法的具體實現,例如:
data class Person(val name: String, val age: Int) : Comparable<Person> {
override fun compareTo(other: Person): Int {
return age.compareTo(other.age)
}
}
總之,Kotlin 泛型通過類型參數提供了一種靈活的方式來處理不同類型。你可以編寫可重用的通用代碼,同時保持類型安全。