【12】 kotlin 具名参数与变长参数

烈酒焚心 提交于 2020-10-06 07:53:51

 具名参数

  • 某个参数可以接受多个值

  • 可以不为最后一个参数

  • 如果传参有歧义,需要使用具名参数

 

package com.yzdzy.kotlin.nameFun

fun sum(arg1: Int, arg2: Int) = arg1 + arg2
//变长参数  和数组一模一样
fun main(vararg args: String) {
    //具名参数可以交换参数
    val res = sum(arg2 = 2, arg1 = 2)
    val res2 = sum(arg1 = 1, arg2 = 2)
    println(res)
    println(res2)
    //变长参数  和数组一模一样
    for (arg in args) {
        println(arg)
    }
    val array = intArrayOf(1, 3, 4, 5)
    val array1 = arrayListOf(1, 3, 4, 5)
    hello(1.0, 2, 312, 3, string = "helo")
//    * 把array 展开。
    hello(1.0, *array, string = "helo")
    //只支持list  不支持array
//    hello(1.0, *array1, string = "helo")


}

//变长参数 vararg
fun hello(double: Double, vararg ints: Int, string: String) {
    ints.forEach(::println)
}

//    * 把array 展开。

  • 这个操作符叫Spread Operator
  • 只支持展开Array
  • 只用于变长参数列表的实参
  • 不能重载

变长参数

vararg 修饰 类似于java的可变参数

默认参数

package com.yzdzy.kotlin.nameFun


//变长参数  和数组一模一样
fun main(vararg args: String) {

//    由于第一个参数有默认参数 所以后面的参数要加具名 也可以后面设置默认参数 前面就不用加具名参数了
    hello(ints = *array, string = "helo")

}

//变长参数 vararg
fun hello(double: Double = 3.0, vararg ints: Int, string: String) {
    ints.forEach(::println)
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!