Kotlin學習筆記(4) infix Functions 内缀函数
infix Functions 内缀函数
Member functions and extensions with a single parameter can be turned into infix functions.
程式
fun main() {
infix fun Int.times(str: String) = str.repeat(this) // 1
println(3 times "Bye ") // 2
val pair = "1. Ferrari" to "2. Katrina" // 3
println(pair)
infix fun String.onto(other: String) = Pair(this, other) // 4
val myPair = "McLaren" onto "Lucas"
println(myPair)
val sophia = Person("Sophia")
val claudia = Person("Claudia")
sophia likes claudia // 5
}
class Person(val name: String) {
val likedPeople = mutableListOf<Person>()
infix fun likes(other: Person) { likedPeople.add(other) } // 6
}
輸出畫面
Bye Bye Bye (1. Ferrari, 2. Katrina) (McLaren, Lucas)
- Defines an infix extension function on
Int
. - Calls the infix function.
- Creates a
Pair
by calling the infix functionto
from the standard library. - Here's your own implementation of
to
creatively calledonto
. - Infix notation also works on members functions (methods).
- The containing class becomes the first parameter.
沒有留言:
張貼留言