vararg函式可變參數

語法

fun 函式名(vararg 參數名:參數類型)
fun func1(vararg s:Int)

使用[索引]取出值。

1
2
3
4
5
6
7
fun func1(vararg s:Int) {
    println(s[0])
}

fun main() {
    func1(10, 20, 30)
}

vararg參數

多參數

Kotlin的可變參數vararg放在最後一個參數。

1
2
3
4
5
6
7
8
9
10
fun func1(arg1:Int, vararg arg2:Int) {
    println("arg1 = $arg1")
    for (i in arg2) {
        println(i)
    }
}

fun main() {
    func1(1000, 10, 20, 30)
}
arg1 = 1000
10
20
30

其它參數有預設值,且沒有傳入參數

arg1有預設值為0,若函式呼叫時沒代入arg1的參數。
arg2要有參數名,且要把可變參數轉型成陣列,如以下程式是intArrayOf(可變參數…)

1
2
3
4
5
6
7
8
9
10
fun func1(arg1:Int = 0, vararg arg2:Int) {
    println("arg1 = $arg1")
    for (i in arg2) {
        println(i)
    }
}

fun main() {
    func1(arg2 = intArrayOf(10, 20, 30))
}
arg1 = 0
10
20
30

vararg不為最後一個參數

vararg不為最後一個,後面有參數,後面參數傳入時要有參數名。

                 在vararg後面的參數要有參數名
                  ↓
func1(10, 20, 30, arg2 = "Hello")
1
2
3
4
5
6
7
8
9
10
fun func1(vararg arg1:Int, arg2:String) {
    println("arg2 = $arg2")
    for (i in arg1) {
        println(i)
    }
}

fun main() {
    func1(10, 20, 30, arg2 = "Hello")
}
b = 20
10
20
30

results matching ""

    No results matching ""