13. 具名参数,变长参数,默认参数

Kotlin
具名参数

给函数的实参附上形参,顺序可以任意调整。

fun main(args: Array<String>) {

    sum01(arg1 = 3,arg2 = 5);

}

fun sum01(arg1:Int,arg2: Int):Int {
    return arg1 + arg2;
}
变长参数
  • 某个参数可以接收多个值
  • 可以不为最后一个参数
  • 如果传参时有歧义,需要使用具名参数
  • 只支持展开Array
  • 只用于变长参数列表的实参
  • 不能重载
fun main(vararg args: String) {

    hello(3.0,1, 3, 5, 7, string = "hello");

    // *array: 代表将数组展开,只适用于数组,不适用于list
    val array: IntArray = intArrayOf(2,4,6,8);
    hello(4.0,*array,string = "world");

}

fun hello(double: Double,vararg ints: Int, string: String): Unit {
    ints.forEach(::println);
    println(string);
}
默认参数
fun main(vararg args: String) {
  
    hello(3.0,*array);

}

fun hello(double: Double,vararg ints: Int, string: String="hello"): Unit {
    ints.forEach(::println);
    println(string);
}
  • 为函数参数指定默认值
  • 可以为任意位置的参数指定默认值
  • 传参时,如果有歧义,需要使用具名参数

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》读薄系列笔记全集。 目录 第I部分:C++基础 开始学习C++ 变量和基本类型 字...
    尤汐_Jennica阅读 3,323评论 1 36
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 673评论 0 6
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 832评论 0 4
  • 函数只定义一次,但可能被执行或调用任意次。JS函数是参数化的,函数的定义会包括一个称为形参的标识符列表,这些参数在...
    PySong阅读 65评论 0 0
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 769评论 0 2