Kotlin 泛型通過提供類型參數(shù)和類型限制來提升代碼的靈活性。以下是一些使用泛型提高代碼靈活性的方法:
fun <T> printList(list: List<T>) {
for (item in list) {
println(item)
}
}
這個 printList
函數(shù)可以處理任何類型的列表,如 IntList、StringList 等。
where
子句為泛型類型參數(shù)設(shè)置約束,以確保類型滿足特定的條件。這有助于提高代碼的安全性和可讀性。例如:fun <T> printList(list: List<T>, predicate: (T) -> Boolean) {
for (item in list) {
if (predicate(item)) {
println(item)
}
}
}
在這個例子中,我們?yōu)轭愋蛥?shù) T
添加了一個約束,要求它實現(xiàn) Predicate<T>
接口。這使得我們可以將一個接受布爾值謂詞的函數(shù)傳遞給 printList
函數(shù)。
fun <T> List<T>.printAll() {
for (item in this) {
println(item)
}
}
fun <T> T.printValue() {
println(this)
}
現(xiàn)在,我們可以為任何類型的列表調(diào)用 printAll
方法,以及為任何類型的對象調(diào)用 printValue
方法。
總之,Kotlin 泛型通過提供類型參數(shù)、類型限制、擴展函數(shù)和屬性等功能,使得代碼更加靈活、可重用和安全。