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

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:

主站蜘蛛池模板: 荔浦县| 郑州市| 布尔津县| 彭山县| 北京市| 德保县| 通榆县| 鄂尔多斯市| 道真| 泰和县| 枣庄市| 康平县| 合山市| 洮南市| 营山县| 屏东市| 那坡县| 红河县| 金湖县| 衡南县| 昂仁县| 南丰县| 铜川市| 宁蒗| 屯留县| 海宁市| 靖远县| 奈曼旗| 永丰县| 张家界市| 聂荣县| 山阳县| 邯郸市| 蛟河市| 介休市| 石楼县| 通州区| 杂多县| 丰台区| 广元市| 巫山县|