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

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:

主站蜘蛛池模板: 当涂县| 长宁区| 藁城市| 洪湖市| 准格尔旗| 洛川县| 云南省| 广灵县| 清新县| 五大连池市| 永福县| 新龙县| 和政县| 泉州市| 萝北县| 莆田市| 夹江县| 青铜峡市| 大洼县| 台湾省| 曲水县| 洛隆县| 南川市| 北安市| 乐业县| 邹城市| 高雄市| 四子王旗| 徐汇区| 鹰潭市| 文山县| 丰原市| 南城县| 大港区| 东乡| 沾化县| 九台市| 霞浦县| 勃利县| 贵溪市| 招远市|