Добавление большего к ответу Марка Байерса.В Ruby метод array.size
является псевдонимом Array # length метод.Нет никакой технической разницы в использовании любого из этих двух методов.Возможно, вы не увидите никакой разницы в производительности.Тем не менее, array.count
также выполняет ту же работу, но с некоторыми дополнительными функциями Array # count
Он может использоваться для получения общего количества элементов на основе некоторого условия.Счет может быть вызван тремя способами:
Array # count # Возвращает количество элементов в массиве
Array # count n # Возвращает числоэлементы, имеющие значение n в массиве
Array # count {| i |i.even?} Возвращает количество на основе условия, вызванного для каждого массива элементов
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
Здесь все три метода выполняют одну и ту же работу.Однако вот где count
становится интересным.
Допустим, я хочу выяснить, сколько элементов массива содержит массив со значением 2
array.count 2 # => 3
В массиве всего три элемента со значением 2.
Теперь я хочу найти все элементы массива больше 4
array.count{|i| i > 4} # =>6
В массиве всего 6 элементов, которые> чем 4.
Надеюсь, это даст некоторую информацию о методе count
.