Es scheint, als würde CoffeeScript automatisch das letzte Element in einem Bereich zurückgeben. Kann ich diese Funktionalität vermeiden?
coffeescript
Shamoon
quelle
quelle
Antworten:
Sie müssen explizit nichts zurückgeben oder einen Ausdruck, der ausgewertet wird, am Ende Ihrer Funktion undefiniert lassen:
Oder:
Dies ist, was der Arzt empfiehlt, wenn er Verständnis verwendet:
Sie könnten jedoch einen Wrapper wie folgt schreiben:
(Beachten Sie den Splat-Operator hier (
...
))Und verwenden Sie es so, wenn Sie Funktionen definieren:
Oder so:
quelle
return
sollen . Das Hinzufügen scheint mir jedoch aus irgendeinem Grund falsch zu sein. Habe ich Recht, wenn ich davon ausgehe, dass es die schlechteste Wahl unter den dreien ist?undefined
null
null
undfined
am Ende zu belassen. Die Verwendung einer leerenreturn
Anweisung scheint die Rückgabe nichts Besseres auszudrücken als das Verlassen einerundefined
am Ende der Funktion, daherreturn
scheint die leere die bessere Option zu sein.fun(arguments...)
wäre es besser anzurufenfun.apply(this, arguments)
.Ja, mit a
return
als letzte Zeile einer Funktion.Beispielsweise,
Wenn Sie sehen möchten, wozu der Kaffee kompiliert wird, versuchen Sie es mit http://bit.ly/1enKdRl . (Ich habe Coffeescript Redux für mein Beispiel verwendet)
quelle
Nur etwas Spaß (ctional)
Function.prototype
selbst ist eine Funktion, die immer nichts zurückgibt. Sie können compose verwenden, um Ihren Rückgabewert in dieses Blackhole zu leiten, und die komponierte Funktion gibt niemals etwas zurück.quelle
quelle
Es scheint, dass Funktionen in CoffeeScript immer etwas zurückgeben müssen, auch nicht
null
. In C haben Sievoid
als Rückgabetyp.->
, die leere Funktion, wird kompiliert und(function() {})
ist daher die einzige Funktion, die nichts zurückgibt.quelle
return;
funktioniert in C, JavaScript und CoffeeScript, um einen ungültigen Wert zurückzugeben.