Comme meilleur exemple de mémorandum, j'écrirai les erreurs rencontrées et les solutions.
erreur de syntaxe = Puisqu'il s'agit d'une erreur de syntaxe, je me fâche si quelque chose ne va pas avec le code que j'ai écrit. Le code ci-dessous est le résultat de la sortie du fichier dans le 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(Mauvais code)
super(
name: params[:name]
hp: params[:hp]
offense: params[:offense]
defense: params[:defense]
)
main2.rb (code modifié)
super(
name: params[:name],
hp: params[:hp],
offense: params[:offense],
defense: params[:defense]
)
La cause était que chaque élément de la super méthode n'était pas séparé par "," et tous étaient traités comme la même ligne, donc j'étais en colère.
** Notez que la super méthode appelle la méthode que la méthode d'exécution remplace. Le remplacement consiste à "remplacer la méthode de la classe parente par la classe enfant". En utilisant super dans la méthode initialize, il est possible d'exécuter la méthode initialize de la classe spécifiée. En conséquence, le traitement peut être divisé en "parties communes" et "parties non communes". ** **
main.rb
Traceback (most recent call last):
main.rb:1:in `<main>': uninitialized constant <nom du cours> (NameError)
Je suis fâché qu'il n'y ait pas de nom de classe dans le fichier main.rb. Si vous obtenez une erreur que vous souhaitez appeler un fichier séparé Décrivons require comme indiqué ci-dessous afin qu'un autre fichier puisse être appelé.
require './<nom du cours>'
wrong number of arguments (given 1, expected 0) (ArgumentError)
Se produit en cas d'erreur d'argument. Je passe une valeur requise comme (donné 1, attendu 0), mais je suis en colère qu'il n'y ait pas de destinataire. Puisqu'il y a une forte possibilité que vous ayez oublié de décrire l'argument en premier lieu, vérifions la méthode décrite.
monster.rb:51:in `transform': undefined method `transform_message' for #<Monster:0x00007fea761c2b28> (NoMethodError)
Littéralement une erreur due à une méthode non définie.
Cela peut être simplement dû à la faute de frappe, mais il est également possible qu'une méthode ait oublié de fermer def ~ end. Faisons également attention à la position du retrait.
** Les éléments suivants seront ajoutés lorsqu'une erreur est rencontrée et résolue. ** **
Recommended Posts