zoukankan      html  css  js  c++  java
  • 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
    }
  • 相关阅读:
    POJ 1003 解题报告
    POJ 1004 解题报告
    POJ-1002 解题报告
    vi--文本编辑常用快捷键之光标移动
    常用图表工具
    September 05th 2017 Week 36th Tuesday
    September 04th 2017 Week 36th Monday
    September 03rd 2017 Week 36th Sunday
    September 02nd 2017 Week 35th Saturday
    September 01st 2017 Week 35th Friday
  • 原文地址:https://www.cnblogs.com/my334420/p/7070882.html
Copyright © 2011-2022 走看看