//Kotlin中Any超类与泛型扩展函数的使用
data class ResponseResult1(val msg: String, val code: Int)
data class ResponseResult2(val msg: String, val code: Int)
//对超类Any扩展一个函数
fun Any.showPrintlnContent() = println("当前内容是: $this")
//对超类Any扩展一个函数,调用时可以链式调用
fun Any.showPrintln(): Any {
println("当前内容是:$this")
return this
}
//对泛型扩展
fun T.showContentInfo() {
println("${if (this is String) "字符串长度是:$length" else "不是字符串,内容是:$this"}")
}
fun T.showTime() = println("当前调用的时间是:${System.currentTimeMillis()}, 内容是:$this")
//函数
fun commonFun() {}
fun main() {
ResponseResult1("login success", 200).showPrintlnContent()
ResponseResult2("login success", 200).showPrintlnContent()
"yuknight".showPrintlnContent()
val number = 14555
number.showPrintlnContent()
val number1 = 33.44
number1.showPrintlnContent()
val number2 = 44.2f
number2.showPrintlnContent()
//扩展函数返回Any,可以进行链式调动
"yuknight".showPrintln().showPrintln().showPrintln()
"yuknight".showContentInfo()
val num = 14555
num.showContentInfo()
val num1 = 33.44
num1.showContentInfo()
val num2 = 44.2f
num2.showContentInfo()
commonFun().showContentInfo()
println()
"yuknight".showTime()
val nu = 14555
nu.showTime()
val nu1 = 33.44
nu1.showTime()
val nu2 = 44.2f
nu2.showTime()
commonFun().showTime()
}