2017-02-13 162 views
0

我想在Kotlin中编写一个匿名的lambda函数,但它看起来并没有传递给它的参数。 (这是不是在所有通过,因为IDE暗示 “变量 '名' 从未使用过”。)如何将参数传递给Kotlin中的匿名lambda函数?

代码:

var name = "Tobias Boon" 
println("reverse=" + fun(name: String): String { 
    var t: String = "" 
    for(i in name.indices.last downTo 1) { 
     t += text.subSequence(i - 1, i) 
    } 
    return t 
}) 

目前打印:reverse=(kotlin.String) -> kotlin.String

+1

你没有传递任何参数到函数。你正在定义一个函数,而不是调用它。 – marstran

+0

我知道,我表示它的描述。 –

+0

我读过它了。那么问题是什么?你的预期产出是多少? – marstran

回答

5

你永远不会调用带参数的函数,应该是

val name = "Tobias Boon" 
println("reverse=" + fun(name: String) : String { 
    ... 
     return t 
}(name)) 

顺便说一句,你的具体例子已经在标准l书库:

println(name.reversed()) 
+2

谢谢,那是我寻找! “name.reversed()”是你用这个拖动我的吗? :) –

+0

只是尝试一下,适用于任何'CharSequence'我知道的 –

+0

。我用这段代码的目的是了解lambdas,而不是反转字符串。 –

相关问题