Scala hat eine generische identity
Funktion im Predef:Hat Kotlin eine Identitätsfunktion?
def identity[A](x: A): A
Does Kotlin eine ähnliche Anlage in der Standardbibliothek hat? Natürlich könnte ich einfach { it }
stattdessen verwenden, aber ich finde identity
einfacher zu lesen, und die Instantiierung all dieser Lambdas ist ein wenig verschwenderisch.
Ich muss diese identity
Funktion an Orten verwenden können, wo eine Funktion (Foo) -> Foo
erwartet wird, für jeden Typ Foo
. Ist eine solche Funktion in Kotlins Typsystem überhaupt möglich? (Im Falle von Scala gibt es eine implizite Konvertierung, die das Verfahren in einem Funktionsobjekt oder etwas einwickelt.)
'val f: (String) -> String = identity' funktioniert nicht ... – fredoverflow
Sie müssen ':: identity' schreiben, um ein Funktionsobjekt von einer Funktion zu instanziieren.Dies ähnelt den Methodenreferenzen von Java. –
Hey! Ich habe einen Anwendungsfall für eine solche Funktion gefunden! Es ist die 'list.toMap (A, B)' Funktion wie hier: http://stackoverflow.com/questions/32935470/how-to-convert-list-to-map-in-kotlin/32938733#32938733 Berücksichtigen Sie, dass es 'fun it (x) = x ', als' list.toMap (:: it, {it.length}) 'gibt, konvertiert eine Liste in eine Map, in der die Elemente die Schlüssel sind. – voddan