首页 > 代码库 > Kotlin基础-扩展
Kotlin基础-扩展
/*
* 扩展:对既有的类增加新功能而无需继承该类,即无法获取其源代码
* 主要作用:“立即”为相关类整体上添加“工具类”方法或属性
* Kotlin支持:扩展函数,扩展属性
*
*与接受者类中参数,名字都一样的扩展是无效的
* 尽量避免与已有的名字重名,如果一定要重名,参数名和类型也要不一样
* */
//扩展函数:fun 接受者类型.新扩展函数名(参数类别){函数实现}
//普通函数扩展:整数平方
fun Int.square():Int{
return this*this
}
//泛型属性扩展
//1.普通属性扩展。例子:整数的下一个数字
val Int.next:Int
get() = this+1
//2.泛型属性扩展:数字类型中半径对应的面积:πr^2
val <T:Number>T.area:Double
get() = 3.14*this.toDouble()*this.toDouble()
fun main(args: Array<String>) {
println(3.square())
println(3.2.area)
print("5".toByte().area)
val a= arrayOf(1,2,6,-1,10)
println(a.big())
println(a.smal())
println(3.next)
}
//泛型函数扩展:取数字型数组中最大元素
fun <T>Array<T>.big():T
where T:Number,T:Comparable<T>
{
var big=this[0]
for (i in 1..lastIndex){
val element=this[i]
if (element>big)
big=element
}
return big
}
//泛型函数扩展:取数字型数组中最小元素
fun <T>Array<T>.smal():T
where T:Number,T:Comparable<T>
{
var smal=this[0]
for (i in 1..lastIndex){
val element=this[i]
if (element<smal)
smal=element
}
return smal
}
Kotlin基础-扩展
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。