2016-12-26 13 views
10

In Kotlin ist es möglich, Lambda-Argumente Namen in ihrer Definition zu geben.Kotlin: Wofür werden Lambda-Argumente verwendet?

fun example(lambda: (a: Int, b: Int) -> Int) 

Wie Sie sehen können, sind a und b im Lambda genannt. Ich dachte, dass dies wirklich nützliche Informationen für eine IDE sein könnten, um Lambdas mit den aufgefüllten Parameternamen zu erzeugen. Aber zumindest mit IntelliJ existiert die Funktionalität entweder nicht oder funktioniert in einer mir unbekannten Weise.

Was sind also die benannten Lambda-Argumente? Ändern sie die Kompilierausgabe in irgendeiner Weise? Und gibt es irgendwelche Tricks, für die du sie benutzen kannst?

Antwort

11

Zurzeit verwendet keine Sprache-Funktion, diese Namen, und, soweit ich weiß, das einzige, was die Erzeugung von Lambda-Vorlagen von der IDE-Plugin tut, ist:

enter image description here

Dann Tab oder Geben Sie, und Sie werden die Lambda mit dem Parameternamen deklariert in der example Definition erhalten:

enter image description here

Siehe auch diese Ausgabe: Make use of named higher order function parameters