![Capture d'écran 2020-08-31 15.49.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694973/7de31e7d-4555-29a3-20ac -21aa281f02fc.png)
sum = 0
10.times do |i|
sum = sum + i + 1
end
sum = 0
numbers = [1,2,3,4,5,6,7,8,9,10]
numbers.each do |n|
sum += n
end
J'utilise la méthode each pour les calculs itératifs sur le tableau, tandis que la réponse du modèle utilise la méthode des temps. Le point commun est que la valeur somme est définie en dehors du bloc, et le traitement à effectuer pour cette somme est décrit dans le bloc de faire à la fin. Mais tout écrire de 1 à 10 n'est pas intelligent. Il existe un objet de plage qui représente une plage de valeurs consécutives telles que «1 à 10». Créez un objet de plage en utilisant ... ou .. comme ceci:
1 ... 10 (dont 10) 1..10 (sans compter 10) Vous pouvez utiliser la méthode to_a sur cet objet range pour créer un tableau contigu de valeurs
![Capture d'écran 2020-08-31 16.24.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694973/da10d3d6-3cdf-7c2b-17f5 -93c9b25ea192.png) Vous disposez désormais d'un tableau continu jusqu'à 10! Vous pouvez également créer un tableau de la même manière en utilisant * et un objet range dans []. C'est ce qu'on appelle l'expansion splat. Ce sera comme suit.
Si vous rassemblez ce qui précède et faites à nouveau la réponse de l'exemple, ce sera comme suit
sum = 0
numbers = [*1..10]
numbers.each do |n|
sum += n
end
J'ai pu le rendre beaucoup plus propre depuis le début! Vous pouvez également le rendre encore plus compact en utilisant la méthode each directement sur l'objet range. En même temps, au lieu d'utiliser do ... end comme notation de bloc, nous utiliserons {}.
sum = 0
(1..10).each{ |n| sum += n }
Présentation de la façon de rendre le calcul itératif compact en utilisant l'objet range et la méthode to_a dans chaque méthode. En ce qui concerne la programmation, non seulement la réponse est donnée, mais ce n'est pas facile à comprendre pour le spectateur et il est plus facile d'écrire du code là-bas. Je voudrais continuer à produire en sachant combien il est facile d'écrire du code!
Introduction à Ruby pour les professionnels Des spécifications linguistiques aux techniques de développement / débogage pilotées par les tests Software Design et version Kindle Junichi Ito () https://www.amazon.co.jp/dp/B077Q8BXHC/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1
Recommended Posts