Ruby/Подробнее о массивах: различия между версиями
Содержимое удалено Содержимое добавлено
Строка 480:
Кто результат не сохраняет.
Для того, чтобы сохранить результат выполнения метода в исходную переменную,
<source lang="ruby">array = [1, 2, 3, 4, 5]
Строка 486:
array #=> [1, 4, 9, 16, 25]</source>
Такой приём работает и с многими другими методами в языке, которые только возвращают результат своего выполнения. Однако при использовании цепочек методов каждый должен быть с восклицательным знаком, иначе разорвётся цепочка копирований.
<source lang="ruby">
array = [1, 2, 3, 4, 5, nil]
array.compact.map!{ |elem| elem**2 } #=> [1, 4, 9, 16, 25]
array #=> [1, 2, 3, 4, 5, nil]
array.compact!.map!{ |elem| elem**2 } #=> [1, 4, 9, 16, 25]
array #=> [1, 4, 9, 16, 25]</source>
В первом случае операция .compact создала копию массива, тогда как .compact! заменила первоначальные значения результатами, полученными от .map!
==== Отбор элементов по признаку ====
|