Есть ли лучший способ для
result = [] function_that_yields{ |value| result << value }
Если функция, которая выдает, не имеет логики для построения массива, то это единственный способ выполнить эту задачу. В противном случае рассмотрите возможность использования встроенных перечислимых методов, таких как inject или map .
Да, вы можете использовать результат = кое-что.inject ([]) {| x, y | x << y} </p>
Вы можете вставить что угодно в x, чтобы вы могли сделать что-то вроде значения x << в этом случае. </p>