Als Paradebeispiel für ein Memorandum werde ich die aufgetretenen Fehler und die Lösungen aufschreiben.
Syntaxfehler = Da es sich um einen Syntaxfehler handelt, werde ich wütend, wenn etwas mit dem von mir geschriebenen Code nicht stimmt. Der folgende Code ist das Ergebnis der Ausgabe der Datei im Terminal.
main2.rb:81: syntax error, unexpected tIDENTIFIER, expecting ')'
hp: params[:hp]
main2.rb:82: syntax error, unexpected ':', expecting end
offense: params[:offense]
main2.rb:83: syntax error, unexpected ':', expecting end
defense: params[:defense]
main2.rb:84: syntax error, unexpected ')', expecting end
)
main2.rb(Falscher Code)
super(
name: params[:name]
hp: params[:hp]
offense: params[:offense]
defense: params[:defense]
)
main2.rb (geänderter Code)
super(
name: params[:name],
hp: params[:hp],
offense: params[:offense],
defense: params[:defense]
)
Die Ursache war, dass jedes Element in der Supermethode nicht durch "," getrennt war und alle als dieselbe Zeile behandelt wurden, also war ich wütend.
** Beachten Sie, dass die Super-Methode die Methode aufruft, die die ausführende Methode überschreibt. Überschreiben bedeutet "Überschreiben der Methode der übergeordneten Klasse mit der untergeordneten Klasse". Durch die Verwendung von super in der Initialisierungsmethode ist es möglich, die Initialisierungsmethode der angegebenen Klasse auszuführen. Infolgedessen kann die Verarbeitung in "gemeinsame Teile" und "nicht gemeinsame Teile" unterteilt werden. ** ** **
main.rb
Traceback (most recent call last):
main.rb:1:in `<main>': uninitialized constant <Klassenname> (NameError)
Ich bin wütend, dass die Datei main.rb keinen solchen Klassennamen enthält. Wenn Sie eine Fehlermeldung erhalten, möchten Sie eine separate Datei aufrufen Beschreiben wir require wie unten gezeigt, damit eine andere Datei aufgerufen werden kann.
require './<Klassenname>'
wrong number of arguments (given 1, expected 0) (ArgumentError)
Tritt im Falle eines Argumentfehlers auf. Ich übergebe einen erforderlichen Wert als (gegeben 1, erwartete 0), aber ich bin wütend, dass es keinen Empfänger gibt. Da es sehr wahrscheinlich ist, dass Sie vergessen haben, das Argument überhaupt zu beschreiben, überprüfen wir die beschriebene Methode.
monster.rb:51:in `transform': undefined method `transform_message' for #<Monster:0x00007fea761c2b28> (NoMethodError)
Buchstäblich ein Fehler aufgrund einer undefinierten Methode.
Es mag einfach am Typ liegen, aber es ist auch möglich, dass eine Methode vergessen hat, def ~ end zu schließen. Achten wir auch auf die Position des Einzugs.
** Folgendes wird hinzugefügt, wenn ein Fehler auftritt und behoben wird. ** ** **
Recommended Posts