Generics
Generic Pairs
Use two type parameters for a small pair of values.
pair
A generic class can declare more than one type parameter.
Generic Pairs
GenericPairs.kt
Replay: real traced execution (multi-file project)
class PairBox<A, B>(val first: A, val second: B)
fun main() {
val count = 2
val pair = PairBox("left", count)
val summary = "${pair.first}:${pair.second}"
println("count=$count")
println("summary=$summary")
}
class PairBox<A, B>(val first: A, val second: B)
fun main() {
val count = 1
val pair = PairBox("left", count)
val summary = "${pair.first}:${pair.second}"
println("count=$count")
println("summary=$summary")
}
class PairBox<A, B>(val first: A, val second: B)
fun main() {
val count = 4
val pair = PairBox("left", count)
val summary = "${pair.first}:${pair.second}"
println("count=$count")
println("summary=$summary")
}
count ← 2, summary ← left:2
3fun main() {4 val count→ 2 = 2 //@count=1, 45 val pair = PairBox("left", count2)6 val summary→ left:2 = "${pair.firstleft}:${pair.second2}"78 println("count=$count2")9 println("summary=$summaryleft:2")10}outputcount=2 summary=left:2
count ← 1, summary ← left:1
3fun main() {4 val count→ 1 = 15 val pair = PairBox("left", count1)6 val summary→ left:1 = "${pair.firstleft}:${pair.second1}"78 println("count=$count1")9 println("summary=$summaryleft:1")10}outputcount=1 summary=left:1
count ← 4, summary ← left:4
3fun main() {4 val count→ 4 = 45 val pair = PairBox("left", count4)6 val summary→ left:4 = "${pair.firstleft}:${pair.second4}"78 println("count=$count4")9 println("summary=$summaryleft:4")10}outputcount=4 summary=left:4