[RUBY] Il est facile de s'en débarrasser, mais j'ai à nouveau résumé la méthode des temps.

Quelle est la méthode des temps

Une méthode qui peut être utilisée pour les objets numériques. Répétez le processus inclus dans do ~ end pour le nombre de nombres.

Conclusion

J'ose commencer par la conclusion.

・ ~~ Variable de bloc ~~ Le paramètre de bloc n'est valide que dans le bloc (portée) -Ceux définis à l'extérieur peuvent également être utilisés à l'intérieur du bloc (notez qu'ils peuvent être réécrits) </ font>

Je veux que vous mettiez ceci dans le coin de votre tête et poursuivez votre lecture.

portée

La portée est la plage dans laquelle les variables définies peuvent être utilisées.

bloquer

do~endOu{ }(Ondulations)L'intérieur s'appelle un bloc. De plus, dans le bloc|Nom de variable| ||Variables dans (Pipeline)~~Variable de bloc~~C'est ce qu'on appelle un paramètre de bloc.

STEP1

Pour vous assurer que vous le comprenez, commencez ici.


num = 1
puts num
#=>1

Un tel programme apparaît au tout début des variables. Pour l'expliquer soigneusement, la valeur numérique 1 est affectée à la variable num, et elle est appelée par put. Je n'en suis pas conscient, mais comme il s'agit de la plage (portée) de la variable num, elle peut être appelée avec put.

STEP2

num = 1

3.times do
 puts num
end
#=>1
#  1
#  1

Cela a eu pour effet de répéter "met num" 3 fois et un "1" 3 fois. Il convient de noter la portée de la variable num. Vous pouvez utiliser des variables définies en dehors de do ~ end.

STEP3

3.times do
 num = 1
end
puts num
#=>NameError

Le code est similaire à STEP2, mais j'obtiens une erreur. ↓


NameError (undefined local variable or method num for main:Object)

La traduction simple est «« num »de« met num »n'est pas défini». C'est vrai, tout ce qui est défini à l'intérieur de do ~ end ne peut pas être appelé en dehors de do ~ end. En fait, un point d'achoppement! !!

STEP4

num = 1

3.times do|i|
 num = num + i
end
puts num
#=>4

Points à lire ① ~~ Variable de bloc ~~ Les paramètres de bloc commencent à 0 et augmentent de 1. Dans l'exemple ci-dessus, on considère que "0" est remplacé la première semaine, "1" est remplacé la deuxième semaine et "2" est remplacé la troisième semaine.

(2) Les variables externes ont été réécrites.

Si vous l'écrivez soigneusement ↓ La 1ère semaine num + 0 => num est définie comme 1, donc "1 + 0" est assigné à num. 2ème semaine num + 1 => De ce qui précède, num est 1 et comme c'est la 2ème semaine, je passe à 1 et "1 + 1" est affecté à num. 3ème semaine num + 2 => De ce qui précède, num est 2, et comme c'est la 3e semaine, je passe à 2 et "2 + 2" est attribué à num.

point

  • [x] ~~ Variable de bloc ~~ Comme son nom l'indique, le paramètre de bloc n'est valide que dans le bloc.
  • [x] Les variables définies à l'extérieur du bloc peuvent être réécrites par traitement à l'intérieur du bloc.

finalement

En ce qui concerne le traitement itératif, c'est un contenu que vous apprenez à programmer et à apprendre à un stade précoce, et même si vous pensez le comprendre, vous ne vous souvenez peut-être pas des détails, alors profitez-en pour le revoir.

Recommended Posts

Il est facile de s'en débarrasser, mais j'ai à nouveau résumé la méthode des temps.
Méthode pour additionner le nombre d'années et obtenir la fin du mois
Obtenez le type d'un élément d'un tableau pour déterminer s'il s'agit d'un tableau
Maintenant, j'ai résumé les bases de RecyclerView
[Java] Est-il inutile de vérifier "l'identité" dans l'implémentation de la méthode equals ()?
Comment obtenir le jour d'aujourd'hui
Sortie de la façon d'utiliser la méthode slice
[Java] Comment obtenir l'URL de la source de transition
[Java] Comment obtenir la valeur maximale de HashMap
[Android] Comment obtenir la langue de réglage du terminal
[Rails] Comment obtenir le contenu des paramètres forts
[Swift] Comment obtenir l'ID de document Firebase
Je veux obtenir une liste du contenu d'un fichier zip et sa taille non compressée