четверг, 29 января 2009 г.

Struct внутри класса

В прошлом посте я упомянул о Struct. Использовать эту конструкцию достаточно просто:
TestRecord = Struct.new("TestRecord", :test1, :test2)
record = TestRecord.new()
И далее record используется как экземпляр класса TestRecord.

Но вот захотелось мне использовать Struct внутри класса. Для этого пришлось явно указать, что TestRecord это также класс:
class Test
class TestRecord < Struct.new("TestRecord", :test1, :test2); end

attr_reader :record

def initialize
@record = TestRecord.new()
end
end
Дело в том, что с помощью Struct.new мы создаем структурный шаблон, который на самом деле является классом, который создается внутри класса Struct.

Комментариев нет:

Отправить комментарий