fun add(x: Int, y: Int): Int {
return x+y
}
fun main(args: Array<String>) {
val b=add(5,6)//函数调用
println(b)//--->>11
println(sum(1,2,3,4,5,6))//--->21
val a= intArrayOf(1,2,3,4,5,6)
print(sum(*a))
}
//可变参数修饰符vararg
fun sum(vararg x: Int):Int {
var total=0
for (i in x) {
total+=i
}
return total
}
/*
* 高阶函数:1.参数或返回值的类型是函数型
* 函数型:(参数)->返回值
* lambda:一种无名函数的简写{(参数)->函数执行语句}
* 其他语言称闭包,即有能力访问其自身范围外的变量
*
* */
fun main(args: Array<String>) {
//高阶函数:2.描述任务的结束,而不是使用循环详细推算
//map:常用于对集合类型的元素类型整体转变
//其lambda中参数的约定名称为it
val a= arrayOf(1,2,3,4,5,6,7,8)
//val b=a.map { "第1" }//--->第1第1第1第1第1
val b=a.map { "第${it}" }//--->>第1第2第3第4第5
for (s in b) {
println(s)
}
//filter:对集合类型进行筛选
var sum=0
val c=a.filter { it%2==0 }
for (s in c) {
print(s)//--》 2 4 6 8 10
}
a.filter { it%2==0 }.forEach{
sum+=it
print(sum)//2 6 12 20 30
}
}