用于将函数传递到映射的Kotlin高阶函数
例如,在JS中有一个高阶函数,一个传递给映射的函数:用于将函数传递到映射的Kotlin高阶函数,kotlin,Kotlin,例如,在JS中有一个高阶函数,一个传递给映射的函数: const numbers = [1, 1, 2, 3, 5, 8] const transformFunction = x => x + 2 console.log ("transformatio:: ", numbers.map(transformFunction)) 如果我想在Kotlin实现这一目标,我必须: val numbers = setOf(1, 1, 2, 3, 5, 8) fun trans
const numbers = [1, 1, 2, 3, 5, 8]
const transformFunction = x => x + 2
console.log ("transformatio:: ", numbers.map(transformFunction))
如果我想在Kotlin实现这一目标,我必须:
val numbers = setOf(1, 1, 2, 3, 5, 8)
fun transformFunction (x: Int): Int {
return x + 2
}
println("transformFunction:: ${numbers.map{transformFunction}}")
但我有错误:
错误:需要顶级声明printlntransformFunction::
${numbers.map{transformFunction}
那么,将函数传递给我的map操作符缺少什么呢?如果您在js的代码片段中密切注意,transformFunction具有类型函数 所以,要将该代码段转换为Kotlin,还需要使用type函数声明一个变量transformFunction。那你就可以走了
val numbers = setOf(1, 1, 2, 3, 5, 8)
val transformFunction: (Int) -> Int = { it + 2 }
println("transformFunction:: ${numbers.map(transformFunction)}")
上面的代码片段是从JS到Kotlin的最接近的翻译。但是,如果您想保持代码的原样,而不做太多更改,那么就来这里吧
val numbers = setOf(1, 1, 2, 3, 5, 8)
fun transformFunction (x: Int): Int {
return x + 2
}
println("transformFunction:: ${numbers.map{transformFunction(it)}}")
// or
println("transformFunction:: ${numbers.map(::transformFunction)}")
如果您密切关注js的代码片段,transformFunction具有类型函数 所以,要将该代码段转换为Kotlin,还需要使用type函数声明一个变量transformFunction。那你就可以走了
val numbers = setOf(1, 1, 2, 3, 5, 8)
val transformFunction: (Int) -> Int = { it + 2 }
println("transformFunction:: ${numbers.map(transformFunction)}")
上面的代码片段是从JS到Kotlin的最接近的翻译。但是,如果您想保持代码的原样,而不做太多更改,那么就来这里吧
val numbers = setOf(1, 1, 2, 3, 5, 8)
fun transformFunction (x: Int): Int {
return x + 2
}
println("transformFunction:: ${numbers.map{transformFunction(it)}}")
// or
println("transformFunction:: ${numbers.map(::transformFunction)}")
感谢@So'n我收到双向错误:在特定函数(如main,…)中需要顶级声明place println,。。。。您收到的错误表明您正在调用一个顶级println函数。Thank@So'n我收到双向错误:需要顶级声明将println放置在特定函数(如main,…)中,。。。。您得到的错误表明您正在调用一个顶层为println的函数。