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