27. 重载

作者: 厚土火焱 | 来源:发表于2017-11-23 22:48 被阅读49次

    重载是很好理解的,就是相同的函数名使用不同的参数的多个函数。很多时候,我们需要一个函数来做很多事情,而这些事情不是要同时做的,根据给入参数的不同来决定所要完成的事情。这就是要用到重载的业务场景。
    比如有个机器人叫做 a,
    当什么信息都不给它时,它只会返回 0;
    当你给它一个整数的时候,它会把这个整数当作年龄来进行信息反馈;
    当你给它的是一个字符串的时候,它会把这个串当作自己的名字来处理。
    那么接收这些信息的都是 a,所以我们按照这个逻辑,建立一个名为 a 的函数。
    代码如下

    class Overloads{
        fun a():Int{
            return 0
        }
        fun a(int:Int):String{
            return "我${int}岁了。"
        }
        fun a(str:String):String{
            return "我是$str"
        }
    
    }
    

    因为用到了重载,我们就叫这个类为 Overloads 了。然后,如下调用

        val overloads = Overloads()
        println(overloads.a())
        println(overloads.a(3))
        println(overloads.a("joel"))
    

    看看运行结果

    0
    我3岁了。
    我是joel
    

    很好理解吧。再也不担心那些起名字的事情了,只要我们给不得不同名的函数不同的参数即可。
    不仅是参数类型,参数个数也可以不同。比如

        fun a(str: String, int: Int):String{
            return "我是${int}岁的${str}。你喜欢我吗?"
        }
    

    调用是

    println(overloads.a("月儿",16))
    

    运行结果就会增加一句

    我是16岁的月儿。你喜欢我吗?
    

    相关文章

      网友评论

        本文标题:27. 重载

        本文链接:https://www.haomeiwen.com/subject/tkitbxtx.html