- определяется? фу? foo << "bar": foo = ["bar"] </li>
- если (определено? Foo), то foo << "bar" иначе foo = ["bar"] end </li>
В любом случае ваш код может быть упрощен. Основываясь на двух приведенных выше примерах, похоже, что будет какой-то замкнутый цикл. Вместо того, чтобы пытаться создать foo
внутри него и инициализировать первый ['bar']
, я бы сделал что-то вроде:
foo = []
... start some loop ...
foo << bar
... end some loop ...
Или, если вам не нравится разбивать инициализатор из того места, куда вы добавляете массив:
(foo ||= []) << "bar"
Этот второй способ немного "Perlish", но он не так уж далек от Ruby-пути, чтобы его невозможно было расшифровать.