kinjouj.github.io

Rubyで配列内をオブジェクトに変換する方法

2025-05-01T00:00:00+09:00 Ruby

配列内のデータを元にオブジェクトとして変換したい場合

class Sample
  attr_accessor :name

  def initialize(name)
    @name = name
  end
end

samples = ["hoge", "fuga", "foobar"]
samples.map! {|sample| Sample.new(sample) }

samples.each do |sample|
  p sample.name
end

# Output
# hoge
# fuga
# foobar

多分、普通はこうやってmapの中で変換したりでやるんだと思うんだが。これどうにか簡略化できないものかと。

class Sample
  attr_accessor :name

  def initialize(name)
    @name = name
  end
end

samples = ["hoge", "fuga", "foobar"]
samples.map!(&Sample.method(:new))

samples.each do |sample|
  p sample.name
end

# Output
# hoge
# fuga
# foobar

てな感じでこうやっても一応できるにはできるっぽい。どうな弊害が起きるかは知らんけどw