Top > Ruby [2.2.2] > class
★★ class ★★
class RoboSutsu
# コンストラクタ
def initialize(pname=nil)
@name = pname
end
attr_accessor :name
def set(pname)
@name = pname
end
end
★★ 上のクラスをリストに持つクラスの宣言 ★★
class SiroBase
# コンストラクタ
def initialize(pname=nil, pindx=0)
@list = Array.new
@indx = pindx
end
attr_accessor :list, :indx
# リスト追加
def add(mobile=nil)
if mobile != nil
@list.push(mobile)
@indx+=1
end
end
# インデックス指定検索
def [](n)
@list[n]
end
end
★★ 保存する配列 ★★
sutsu = ["acha" , "porute" , "piipo"]
base = SiroBase.new() # リストクラスを生成
sutsu.each do |name|
mobiru = RoboSutsu.new
mobiru.set(name)
base.add(mobiru)
end
base.list.each do |sutsu|
p sutsu.name
end # "acha"
# "porute"
# "piipo"
p base[2].name # "piipo"
p base[5].name # undefined method `name' for nil:NilClass (NoMethodError)