Kotlin学习之定义函数

作者: 程序员丶星霖 | 来源:发表于2017-11-18 21:21 被阅读27次

    Kotlin学习之定义函数

    @(Kotlin学习)

    一、定义函数

    Kotlin中的函数比Java中的方法更灵活,用途更广,功能更强。

    定义方式如下:

    [访问控制符]  [修饰符]  fun  [<泛型标识符>]  [扩展接受类型.]函数名([参数列表])  [: 返回值类型]{
        函数体
    }
    

    共有如下9部分:

    1. [访问控制符]:可省略。
    • Kotlin中的访问控制符有:public、protected、internal、private,如果没有声明,则默认为public。
    1. [修饰符]:可省略。
    • 修饰符会给函数添加不同的功能,包括infixinline
    1. fun:不可省略。
    • 用来声明函数的关键字,是英语Function(函数)的缩写。
    1. 函数名:不可省略。
    • 和Java方法名一样,遵循驼峰式命名。
    1. [<泛型标识符>]:可省略。
    • 与Java类似,如果返回值包含泛型,则需要在这里将函数标记为泛型函数。
    1. [扩展接收类型]:可省略。
    • 定义扩展函数时使用
    1. [参数列表]:可省略。
    • 每个参数都使用"形参名:形参类型"的形式,形参类型是不能够省略的。
    1. [: 返回值类型]:可省略。
    • 返回值类型可以是Kotlin和Java中的引用数据类型。
    • 如果没有返回值,则返回值类型是Unit,一般会省略。fun sayHello(name:String)= print("My name is ${name}.")
    • 如果返回值类型可以由单句的函数体推断出来,则可以省略返回值类型。fun multiply(a:Double,b:Double)=a*b
    1. {函数体}:不可省略
    • 函数体定义函数的行为,如果函数体只有一句,可以写成"= 函数体"的形式。
    //简写
    fun multiply(a:Double,b:Double)=a*b
    
    //完整
    fun multiply(a:Double,b:Double):Double{
        return a*b
    }
    

    二、参数列表

    1. 默认参数
    • Kotlin中的函数可以声明一个参数的默认值,在没有对应值输入时自动取默认值,大大减少了方法重载。
    fun main(args: Array<String>) {
    
        val add = add(1.5, 5.0)//默认c为1.0
        print("\n"+add)//输出7.5
       
        val add1 = add(1.5, 5.0, 3.0)//输入c,不使用默认值,
        print("\n"+add1)//输出9.5
    }
    
    fun add(a:Double,b:Double,c:Double=1.0):Double{
        return a+b+c
    }
    
    1. 可变数量参数
    • 使用vararg修饰参数列表的最后一项,表示这个参数的数量是可变的,与Java中的"形参类型...形参名"相同。
    • 标记为vararg的参数,在函数内表现为对应类型的数组。
    fun main(args: Array<String>) {
        val add = add(3, 2, 1,2,3)
        print(add)
    }
    
    fun add(a:Int,b:Int,vararg n:Int):Int{
        var sum=a+b
        for (i in n) {
            sum+=i
        }
        return sum
    }
    

    学海无涯苦作舟

    我的微信公众号.jpg

    相关文章

      网友评论

        本文标题:Kotlin学习之定义函数

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