在Kotlin中,高階函數可以幫助我們實現代碼復用。高階函數是指接受一個或多個函數作為參數,或者返回一個函數的函數。這里有一個簡單的例子來說明如何使用高階函數實現代碼復用:
假設我們有一個Person
類,其中有一個greet
方法,用于打印問候信息。現在我們想要為不同的對象(如Student
和Teacher
)創建特定的問候方法。我們可以使用高階函數來實現這一目標。
首先,我們定義一個高階函數greet
,它接受一個String
參數和一個函數作為參數:
fun greet(name: String, action: (String) -> Unit) {
println("Hello, $name!")
action(name)
}
接下來,我們為Student
和Teacher
類分別創建特定的問候方法:
data class Student(val name: String)
data class Teacher(val name: String)
fun Student.studentGreet() {
greet(name) { "I am a student." }
}
fun Teacher.teacherGreet() {
greet(name) { "I am a teacher." }
}
現在,我們可以為Student
和Teacher
對象調用這些特定的問候方法:
fun main() {
val student = Student("Alice")
val teacher = Teacher("Bob")
student.studentGreet() // 輸出:Hello, Alice! I am a student.
teacher.teacherGreet() // 輸出:Hello, Bob! I am a teacher.
}
通過這種方式,我們可以使用高階函數greet
實現代碼復用,同時為不同的對象創建特定的問候方法。