Каковы формы методов Ruby? - PullRequest
0 голосов
/ 07 ноября 2018

Мы можем найти определение Ruby Array#fill метод:

Первые три формы устанавливают выбранные элементы себя (которые могут быть весь массив) в объект. Начало нуля эквивалентно нулю. длина ноль эквивалентна self.length. Последние три формы заполните массив со значением блока. Блок передан абсолютный индекс каждого элемента для заполнения. Отрицательные значения старта считать от конца массива.

Что это значит, что первые три формы что-то делают? Что это за формы?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Это неофициальная и неполная копия (почти) официального документа , описание которого приведено в более полной форме:

fill(obj) → ary
fill(obj, start [, length]) → ary
fill(obj, range ) → ary
fill {|index| block } → ary
fill(start [, length] ) {|index| block } → ary
fill(range) {|index| block } → ary

Первые три формы устанавливают выбранные элементы self (которые могут быть всем массивом) в obj. Начало нуля эквивалентно нулю. Длина ноль эквивалентна self.length. Последние три формы заполняют массив значением блока. Блоку передается абсолютный индекс каждого элемента, который будет заполнен. Отрицательные значения отсчета начала от конца массива.

Итак, «первые три формы» относятся к:

fill(obj) → ary
fill(obj, start [, length]) → ary
fill(obj, range ) → ary

Кстати, v1_9_3_392 такой старый. Почему бы не использовать более новую версию Ruby?

0 голосов
/ 07 ноября 2018

Это три примера использования, приведенные в документации:

a.fill("x")              #=> ["x", "x", "x", "x"]
a.fill("z", 2, 2)        #=> ["x", "x", "z", "z"]
a.fill("y", 0..1)        #=> ["y", "y", "z", "z"]

Где поведение этого метода отличается от следующих двух примеров, где дан блок:

a.fill {|i| i*i}         #=> [0, 1, 4, 9]
a.fill(-2) {|i| i*i*i}   #=> [0, 1, 8, 27]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...