官术网_书友最值得收藏!

varargs and spread

Kotlin supports a variable number of arguments. vararg is the keyword that is used for a variable number of arguments. Using vararg, we can pass multiple arguments to a function.

Let's see an example of 7a_VarArgs.kts:

fun findMaxNumber(vararg numbers : Int) =
numbers.reduce { max , e -> if(max > e) max else e }

println(findMaxNumber(1,2,3,4))

The output is as follows:

The findMaxNumber() function takes a variable number of arguments and finds the maximum. We invoked reduce on the numbers and wrote a lambda expression. In Kotlin, a lambda is specified using curly braces.

If we have an array of numbers, we can invoke the findMaxNumber() function using the spread operator without changing the function argument type.

Consider the following code for 7b_Spread.kts:

fun findMaxNumber(vararg numbers : Int) =
numbers.reduce { max , e -> if(max > e) max else e }

val numberArray = intArrayOf(25,50,75,100)
println(findMaxNumber(*numberArray))

The output is as follows:

Note that * acts as a spread operator here. We can combine this with discrete values, as shown in the following 7c_Spread file.

Consider the code for 7c_Spread.kts:

fun findMaxNumber(vararg numbers : Int) =
numbers.reduce { max , e -> if(max > e) max else e }

val numberArray = intArrayOf(25,50,75,100)
println(findMaxNumber(4,5,*numberArray,200, 10))

The output is as follows:

主站蜘蛛池模板: 乌海市| 汤阴县| 武功县| 中山市| 龙门县| 永善县| 延寿县| 大理市| 昂仁县| 绥芬河市| 平江县| 民权县| 金乡县| 洛扎县| 夏河县| 吴江市| 台东县| 泗水县| 清新县| 友谊县| 含山县| 佛坪县| 留坝县| 贺州市| 额济纳旗| 双辽市| 铜陵市| 简阳市| 溆浦县| 叶城县| 民和| 延寿县| 中超| 辽宁省| 康保县| 四子王旗| 怀宁县| 东港市| 宿松县| 芜湖市| 平阴县|