2 Stimmen

Warum bricht mein REPL in CoffeeScript, wenn ich oder gleichsetze?

Wenn ich einen REPL mit Coffeescript 1.3.3 öffne und Folgendes eingebe:

y ?= 5

oder

y = 5
y ||= 6

bekomme ich einen Fehler, dass y nicht definiert ist... Beim Kompilieren funktioniert der letzte, aber der erste wirft immer noch Fehler.. Ist das erwartet?

1 Stimmen

Können Sie die tatsächlichen Fehlermeldungen anzeigen?

0 Stimmen

Hier ist die tatsächliche Fehlermeldung: y ?= 5 Fehler: In repl kann die Variable "y" nicht mit ?= zugewiesen werden, da sie nicht definiert wurde.

1voto

matyr Punkte 5744
coffee> y = 5
5
coffee> y ||= 6
Fehler: In repl kann die Variable "y" nicht mit ||= zugewiesen werden, da sie nicht definiert wurde.

Dies liegt daran, dass jede Auswertung eine separate Kompilierung beinhaltet. Die Lösung besteht darin, darauf als Eigenschaft des globalen Objekts zuzugreifen.

coffee> y = 5
5
coffee> global.y
5
coffee> @y
5
coffee> @y &&= 6
6
coffee> y
6

1 Stimmen

Matyr ist zu korrigieren, aber um genau zu sein, handelt es sich hierbei um einen bekannten Fehler: github.com/jashkenas/coffee-script/issues/…

0 Stimmen

Dank dir, Trevor, schätze es.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X