welche Lösung ist besser? nullable Lambda verwenden oder leeres Lambda als Standardparameter übergeben? würde kotlin irgendwie leeren lambda optimieren? oder eine neue Instanz erstellen, die nichts tut?null oder leer Lambda als Standardwert
class Test1(val action:() -> Unit = {})
Leider verstehe ich nicht Byte-Code erzeugt. Lets analysieren
val test11 = Test1()
nach Dekompilierungsprozeß uns
private static final Test1 test11 = new Test1((Function0)null, 1, (DefaultConstructorMarker)null);
gibt und schließlich als eine Lambda ist so etwas wie dieses
var1 = (Function0)null.INSTANCE;
bearbeiten
geben: die verborgenen Fragen ist : Wie behandelt Kotlin leer? Lambda als Standardwert?
Welche Lösung ist besser, hängt davon ab, was Sie erreichen oder optimieren möchten? – miensol
Ich möchte keine unnötigen, leeren Instanzen haben. Ich weiß, die einfachste Lösung ist es, Nullable Lambda zu haben, aber das bedeutet hässliche Konstruktionen '' 'Aktion? .invoke()' ''. –
@ PawełByszewski Was sind deine Sorgen über '' 'Klasse Test1 (val Aktion:() -> Unit = {})' '? – ruX