Что << делает, когда используется для назначения аргумента в методе Ruby? - PullRequest
0 голосов
/ 07 марта 2012

Я наткнулся на этот прекрасный кусок кода на http://projecteuler.net/, но у меня возникли проблемы с обдумыванием определенной части его.

def generate(n, factors=[])
  return factors if n == 1
  new_factor = (2..n).find {|f| n % f == 0}
  generate(n / new_factor, factors << [new_factor])
end

factors = []
generate(4356463234, factors)

Вопрос : Когда генерирующая функция вызывает себя в строке 4, что factor << [new_factor] </strong> делает?

Спасибо за понимание!

Ответы [ 2 ]

2 голосов
/ 07 марта 2012

Добавляет [new_factor] в конец массива factors.

0 голосов
/ 07 марта 2012

factors является массивом, по-видимому, массивов.factors << [new_factor] добавляет [new_factor] (только что созданный массив из одного элемента, содержащий new_factor) к концу factors и возвращает factors.В результате factors передается как второй аргумент generate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...