Ruby 配列を少なくとも 1 つのデフォルト値で初期化する最も簡潔な方法は何ですか?
概要
Rubyでは、配列を持つオブジェクトがあります。配列内の値を反復処理したいのですが、配列内に少なくとも 1 つの項目が必要です。次のようなことができることはわかっています。
if object.initial_array.empty?
object.initial_array << "foo"
end
object.initial_array.each do ...
しかし、これを 1 行で実行できるようにしたいと考えています。配列を列挙し、空の場合はデフォルト値を指定する最も簡潔な方法は何ですか?
解決策
次のように、initial_array メソッドにデフォルトを設定するだけです。
attr_accessor :initial_array
def initial_array
@initial_array.presence || @initial_array = %w[foo]
end