Я просто возиться с функцией высшего порядка в kotlin. Я передаю эти два строковых аргумента - PullRequest
0 голосов
/ 13 мая 2019

Я передаю эти два строковых параметра в лямбда-выражение.И я получаю странную ошибку, отделяя его, используя (;), и когда я сделал это, он печатает только один val (name2) или «Me», и я хочу напечатать обе строки. Вот код:

fun callMeAgain(str1 : String, str2: String, myFun: (String, String) -> String) {

    val callMyNameOverHere = myFun(str1, str2)
    print(callMyNameOverHere)
}

fun main() {
    val name = "I"
    val name2 = "Me"

    val mylambda : (String, String) -> String = { name: String, name2: String -> name; name2 }
}

1 Ответ

0 голосов
/ 13 мая 2019

Предполагая, что вы хотите, чтобы myLambda вернул конкатенацию между двумя String s, переданными во вход:

val mylambda: (String, String) -> String = { a: String, b: String -> a + b }

Таким образом, вы создаете лямбда-функцию и назначаете эту функцию для val mylambda.
Затем, если вы хотите передать name и name2 на mylambda и получить результат, вы должны сделать:

val result = mylambda(name, name2)

Затем вы можете распечатать результат, если вы этого хотите:

print(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...