//lambda表达式作为方法中的参数的时候。定义 transform方法,可以对数组中元素进行变换。 //array: 要求传入一个数组,元素类型为Int整数类型 //action:要求传入的是一个方法,接受两个参数下标Index,element。要求返回变换后的元素,替换掉老的元素 fun transform(array: Array<Int>, action: (index: Int, element: Int) -> Int){ for (index in array.indices){ val newValue = action(index, array[index]) array[index] = newValue } }
//这是一个 Kotlin 函数,它接受一个 Array<Int> 数组和一个函数类型参数 action。 // 该函数类型参数接受两个 Int 参数:index 和 element,并返回一个 Int 类型的值。 //函数通过循环遍历 array 中的每个元素,并使用 action 函数对每个元素进行转换。 // 在循环的每次迭代中,函数将 index 和 array[index] 作为参数调用 action 函数, // 并将其返回值分配给 array[index]。这样,array 中的每个元素将被转换为一个新值。
//调用具有方法类型参数的方法 val numbers = arrayOf(1, 2, 3, 4) //具名参数调用,及使用参数名action给它赋值 transform(numbers,action = {index, element -> index * element }) for (number in numbers) { println("transform:$number") } transform(numbers){index, element -> index * element } for (number in numbers) { println("transform2:$number") }
// lambda隐形参数it numbers.forEach { println(it) } val list = arrayListOf<Int>(1, 2, 3, 4, 5, 6) list.forEachIndexed(action = {index: Int, element: Int -> println("forEachIndexed:${index}->${element}") }) list.forEachIndexed { index: Int, element: Int -> println("forEachIndexed2: ${index}->${element}") }