2017-02-13 3 views
0

Я хотел бы написать анонимную функцию лямбда в Kotlin, но похоже, что она не принимает переданный ей аргумент. (Это не прошло совсем, так как IDE намекает, что "переменная 'имя' никогда не используется".)Как передать аргументы анонимной лямбда-функции в Котлине?

Код:

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 ibrary:

println(name.reversed()) 
+2

Спасибо, что я искал! "name.reversed()" вы троллируете меня с этим? :) –

+0

просто попробуйте, работает для любого 'CharSequence' –

+0

Я знаю. Мое намерение с этим кодом состояло в том, чтобы узнать о лямбдах, а не перекручивать строки. –

Смежные вопросы