140 votes

Nombre, taille, longueur... trop de choix en Ruby ?

Je n'arrive pas à trouver de réponse définitive à ce sujet et je veux être sûr de bien comprendre ce qui se passe au "nième niveau" :-)

    a = { "a" => "Hello", "b" => "World" }
    a.count  # 2
    a.size   # 2
    a.length # 2

    a = \[ 10, 20 \]
    a.count  # 2
    a.size   # 2
    a.length # 2

Alors, lequel utiliser ? Si je veux savoir si a a plus d'un élément, cela ne semble pas avoir d'importance, mais je veux m'assurer que je comprends la vraie différence. Cela s'applique également aux tableaux. J'obtiens les mêmes résultats.

De plus, je réalise que count/size/length ont des significations différentes avec ActiveRecord. Pour l'instant, je suis surtout intéressé par le Ruby pur (1.92), mais si quelqu'un veut m'expliquer la différence entre AR et ActiveRecord, j'apprécierais également.

Merci !

1voto

Ajouter un complément à la réponse de Mark Byers. En Ruby, la méthode array.size est un alias de Longueur du tableau méthode. Il n'y a pas de différence technique entre ces deux méthodes. Il est possible que vous ne constatiez aucune différence en termes de performances. Cependant, la array.count fait le même travail mais avec quelques fonctionnalités supplémentaires Tableau#compte

Il peut être utilisé pour obtenir le nombre total d'éléments en fonction de certaines conditions. Le comptage peut être appelé de trois façons :

Tableau#compte # Renvoie le nombre d'éléments dans le tableau

Tableau#compte n # Renvoie le nombre d'éléments ayant la valeur n dans le tableau

Tableau#count{|i| i.even?} Renvoie le nombre d'éléments en fonction de la condition invoquée sur chaque élément du tableau

array = [1,2,3,4,5,6,7,4,3,2,4,5,6,7,1,2,4]

array.size     # => 17
array.length   # => 17
array.count    # => 17

Ici, les trois méthodes font le même travail. Cependant, c'est ici que la méthode count devient intéressante.

Supposons que je veuille trouver combien d'éléments le tableau contient avec la valeur 2

array.count 2    # => 3

Le tableau comporte un total de trois éléments dont la valeur est 2.

Maintenant, je veux trouver tous les éléments du tableau supérieurs à 4

array.count{|i| i > 4}   # =>6

Le tableau comporte au total 6 éléments qui sont > 4.

J'espère qu'il donne des informations sur count méthode.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X