2016-04-05 :-(
_ 出たい人
ううむ。この each 連発というのがダサいというかもっとこうエレガントに ruby っぽくならないもんか。
require 'pp' class Item attr_accessor :key, :value def initialize(key, value) @key = key @value = value end end class MCData attr_accessor :title, :items def initialize(title, items) @title = title @items = items end end def findbytitle(list, title) list.each {|mc| if mc.title == title return mc.items end } end def findbyitem(list, itemkey) list.each {|mc| mc.items.each {|i| if i.key == itemkey return i.value end } } end def main(argv) item_a ||= [] item_a << Item.new( :a, 1 ) item_a << Item.new( :b, 2 ) item_a << Item.new( :c, 3 ) item_b ||= [] item_b << Item.new( :d, 4 ) item_b << Item.new( :e, 5 ) item_b << Item.new( :f, 6 ) datalist ||= [] datalist << MCData.new( "A", item_a ) datalist << MCData.new( "B", item_b ) pp datalist pp findbytitle( datalist, "A" ) pp findbyitem( datalist, :a ) end main(ARGV)