跳到主要内容

参数类型

位置参数

位置参数是最常见的参数传递方式,它要求按照函数定义时参数的顺序传递值。使用这种方式时,不需要指定参数名:

fun add(a: Int, b: Int) = a + b

val result = add(1, 2) // 位置参数

在这个例子中,1 和 2 是按照 add 函数定义的参数顺序传递的,因此不需要指定参数名。

命名参数

命名参数允许在调用函数时指定参数名,这对于提高代码的可读性非常有帮助,特别是当函数有多个参数或参数有默认值时。使用命名参数时,可以不按照参数定义的顺序传递参数:

fun add(a: Int, b: Int = 0) = a + b

val result = add(b = 2, a = 1) // 命名参数

在这个例子中,即使 b 在函数定义中位于 a 之后,我们也可以先传递 b 的值,因为我们使用了命名参数。

使用场景

  • 位置参数:当参数较少且意义明确时,位置参数的方式更简洁直观。
  • 命名参数:在以下情况下使用命名参数特别有用:
    • 参数较多,使用命名参数可以提高代码的可读性。
    • 参数有默认值,使用命名参数可以只传递需要修改的参数。
    • 参数的顺序不易记忆,使用命名参数可以避免顺序错误。
    • 跳过某些参数,为后面的参数提供值,前面的参数使用默认值。