Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于将函数传递到映射的Kotlin高阶函数_Kotlin - Fatal编程技术网

用于将函数传递到映射的Kotlin高阶函数

用于将函数传递到映射的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

例如,在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 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的函数。