nicht definierte Methode (NoMethodError) ruby
Ich erhalte immer folgende Fehlermeldung:
text.rb:2:in `<main>': undefined method `choices' for main:Object (NoMethodError)
Aber ich kann nicht scheinen, um zu verstehen, warum meine Methode ist "undefined":
puts "Select [1] [2] [3] or [q] to quit"; users_choice = gets.chomp
choices(users_choice)
def choices (choice)
while choice != 'q'
case choice
when '1'
puts "you chose one!"
when '2'
puts "you chose two!"
when '3'
puts "you chose three!"
end
end
end
Sie definiert die Methode, Entscheidungen nach dem Aufruf von es
Für eine erweiterte Sprache, Ruby sollte in der Lage sein, um zu ermöglichen, forward-Deklarationen. Objective-C erlaubt es.
Für eine erweiterte Sprache, Ruby sollte in der Lage sein, um zu ermöglichen, forward-Deklarationen. Objective-C erlaubt es.
InformationsquelleAutor stecd | 2014-01-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist weil Sie aufrufende Methode
choices
, bevor es zu definieren. Schreiben Sie den code, wie unten:Ich verwendet
break
, bis zur Ausfahrt aus derwhile
Schleife. Sonst wird es eine unendliche Schleife.Hmm ich denke, das sollte nicht der Grund sein , weil in Ruby macht es keinen Unterschied, ob Sie Variablen definieren, bevor Sie ihn aufrufen oder nach dem aufrufen .
Sind Sie sicher ?
ich bin mir ziemlich sicher , aber ich habe gelesen, dass die Sache in ein paar Monaten , also ich weiß nicht, wo Sie es erwähnen, in der ruby-Dokumentation .aber es ist da
Versuchen Sie es in irb -
puts x
, und sagen Sie mir.InformationsquelleAutor Arup Rakshit
Die Methode muss nur aufgerufen werden, bevor Sie ausgeführt wird. Hier habe ich wickeln Sie die definition in der main-Methode doch nur aufrufen, main-nach der definition der Auswahlmöglichkeiten().
InformationsquelleAutor Marc Mance
War ich immer die gleichen Fehler laufen Ruby in Eclipse arbeiten aus der App Akademie Praxis-übungen. Ich vergaß hinzuzufügen "Objekt." auf der mitgelieferten Testfälle. Die folgende syntax funktioniert:
InformationsquelleAutor Richard Bradley Smith