Kotlinで身長を表示する処理があった場合、その引数で複数の型を使用したいときに同じ関数名を書いて引数名のみ変更するとプログラム側が引数を自動で型を判断してくれる。
fun main() {
val height = Height()
val height2 = Height()
val height2 = Height()
height.Print(3)
height2.Print(20.5)
height3.Print("20.5")
}
class Height {
fun Print(value: Int) {
println("身長は${value} cm")
}
fun Print(value: Double) {
println("身長は${value} cm")
}
fun Print(value: String) {
println("身長は${value} cm")
}
}
処理が同じの場合、ジェネリクス<T>
を使用すれば1つにまとめることができる。下記コードは上記と同じ処理を行うことができ、簡単で保守しやすい。
class Height {
fun <T> Print(value: T) {
println("身長は${value} cm")
}
}