2016-05-31 21 views
1

Ich benutze einen Mac mit OSX 10.10.1 Ich machte einen Ordner namens myruby, dann speicherte eine Datei mit TextEdit, genannt first.rb. Die Datei sagtRuby-Code in TextEdit geschrieben wird nicht ausgeführt

puts "Hello World" 

In Terminal I cd myruby eingegeben haben. Ich habe ls verwendet, um sicherzustellen, dass die Datei vorhanden ist. Wenn ich ruby first.rb Typ I diese Nachricht erhalten:

first.rb:1:in `<main>': uninitialized constant World” (NameError)" 

Was mache ich falsch? Offensichtlich existiert die Datei, und Terminal geht so weit, es zu öffnen, aber dann kann es es nicht laufen lassen?

+1

Ich stimme zu, diese Frage als Off-Topic zu schließen, weil sie nicht nur minimale Forschungsarbeit zeigt. – Jules

+0

Ich habe das Forum gesucht, und ich habe einige verwandte Fragen gefunden, aber es scheint, als ob alle von ihnen durch etwas anderes gelöst wurden, wie falsche Großschreibung oder nicht in der richtigen Datei zu sein. Ich habe noch nichts mit dieser Fehlermeldung gefunden, wo Terminal die Datei gefunden hat, aber nicht ausführen kann. – Inbar

+0

Der Fehler erklärt, was falsch gelaufen ist. 'unitialized constant World '(NameError)'. Sie versuchen, einen Wert aufzurufen, ohne dass das entsprechende Symbol zuerst initialisiert wurde. Dies wird ausführlich und mit Beispielen in [einem der ersten Ergebnisse auf Google] erklärt (http: // ruby-doc.org/core-2.2.0/NameError.html) – Jules

Antwort

7

Blick sehr eng an der Fehlermeldung:

first.rb:1:in `': uninitialized constant World” (NameError) 

Die nicht initialisierte Konstante es über beschwert wird World” benannt.

Ich vermute, dass die Dateien dies nicht sagen:

puts "Hello World" 

Ich vermute, dass es das sagt:

puts “Hello World” 

Finde den Unterschied? und sind nicht identisch mit ".

Die sofortige Lösung besteht darin, Smart Quotes (und andere automatische Textumwandlungen) in TextEdit zu deaktivieren. Die langfristige Lösung besteht darin, etwas anderes als TextEdit zu verwenden. es ist nicht zum Programmieren geeignet. Versuchen Sie stattdessen etwas wie SublimeText oder Atom, die für die Programmierung gedacht sind.

+1

Große Empfehlungen: Schritt 1 in der Programmierung zu lernen ist zu verstehen, dass jeder einzelne Charakter zählt und "nahe genug" wird es nicht schneiden – tadman

+0

Vielen Dank! Das war es. Entschuldigung für die sehr grundlegende Frage, ich bin sehr sehr neu bei all dem, nur herauszufinden, alles aus! – Inbar

+0

Keine Sorge, es ist ziemlich schwierig, die Tanne Die meiste Zeit, in der Sie darauf stoßen, ist es ziemlich unmöglich, danach zu suchen! –