Вот что я делаю прямо сейчас, что в настоящее время работает, но я чувствую это немного не хватает в синтаксическое ...Можно ли отдельно объявить параметры блока элемента массива, который передается в блок для метода впрыска?
f = RGeo::Geos.factory
coords = [ [1,1], [2,2], [1,3] ]
points = coords.inject([]) {|points, coord| points << f.point(coord[0], coord[1]); points }
#=> [#<RGeo::Geos::CAPIPointImpl:0x3fff0950a508 "POINT (1.0 1.0)">, #<RGeo::Geos::CAPIPointImpl:0x3fff0950a47c "POINT (2.0 2.0)">, #<RGeo::Geos::CAPIPointImpl:0x3fff0950a454 "POINT (1.0 3.0)">]
Вот что я хотел бы сделать:
points = coords.inject([]) {|points, x, y| points << f.point(x,y); points }
#=> [nil, nil, nil]
Прямо сейчас, когда возвращается массив из трех значений nil. Можно ли объявлять значения массива элемента, передаваемого в блок инъекции, отдельно, как это возможно с каждым методом?
Боковое примечание: Можно использовать одно и то же имя переменной для первого параметра блока впрыска (переменная «результат») и переменная с левой стороны знака равенства, правильно? Я думаю, да, потому что это будет типичный случай рекурсии. Прокомментируйте, если вы чувствуете или знаете иначе.
почему 'inject', это выглядит как «карта»? –
Я полагаю, вы правы. Я наверняка задумался над этим. –