Comments 21
ох. я за вами не успеваю ))
0
Самое смешное, что в то время как пишу статьи по .NET жду ваши, так как сейчас подсел прямо таки на рельсы и руби. Спасибо.
+1
ExtraCat = Struct.new("ExtraCat", :name, :age, :weight) lucky = ExtraCat.new("Lucky", 2, 4)
По-моему пример не окончен, не показано собствеено как работать c lucky. Можно попробовать puts lucky.name и lucky.age += 1, но не уверен, что именно такой синтаксис
+1
Не конструктор, а порождающий метод (глубже не буду).
0
Углубляясь в модули
Перелистнем на одну каплю назад и вспомним, что такое модули и как их применять, в частности, обратим внимание на примеси и пример, приведенный там.
Но что случится при смешивании с нашими методами модуля? Если вы думаете, что будут включены как методы класса, то Руби так не поступает. Для этого можно сделать так:
Смотря как модмешивается модуль. Если это include — то будут instance-методы, если это extend — то — синглтон-методы. При этом записи:
0
не дописал, опять отправилось по клавишам случайно.
При этом записи:
и
эквиваленты, и обе создают синглтон-методы для «сущности». Если сущностью является класс, то будет создан метакласс, который будет содержать методы класса. Если сущность — это инстанс, то будет создан virtual-класс, который будет хранить методы инстанса. Кстати, класс — тоже инстанс (класса Class), поэтому первая конструкция, в которой используется include (который добавляет инстанс-методы) эквивалентна второй.
И сам include, как я уже отмечал, создает прокси-класс со ссылкой на подмешиваемый модуль.
P.S> для начального изучения эти механизмы не столь важны, но привожу, поскольку знать это тоже нужно будет.
При этом записи:
class << self # Здесь self это MyClass include MyMod end
и
extend MyMod
эквиваленты, и обе создают синглтон-методы для «сущности». Если сущностью является класс, то будет создан метакласс, который будет содержать методы класса. Если сущность — это инстанс, то будет создан virtual-класс, который будет хранить методы инстанса. Кстати, класс — тоже инстанс (класса Class), поэтому первая конструкция, в которой используется include (который добавляет инстанс-методы) эквивалентна второй.
И сам include, как я уже отмечал, создает прокси-класс со ссылкой на подмешиваемый модуль.
P.S> для начального изучения эти механизмы не столь важны, но привожу, поскольку знать это тоже нужно будет.
0
Лучше писать не
def SuperCat.big_cat
, а def self.big_cat
, чтобы не пришлось всё переименовывать, когда сменишь имя класса.0
pussy = HyperCat.new do self.name = "Pussy" end
Лучше заменить на:
pussy = HyperCat.new do @name = "Pussy" end
0
а где-нибудь упоминалось, что почти все взято с книги Хэла Фултона? причем в предыдущих постах еще было что-то свое, а в этом почти копипаст…
0
UFO just landed and posted this here
> Windows Live Writer + Visual Studio + VSPaste + HTML Snippet + PowerGREP + регулярные выражения + некоторая работа ручками
мне кажется, по количеству действий Gvim (в том числе под виндами) будет давать результат несколько быстрее: меню Синтаксис -> Сделать HTML с подсветкой. Пробелы он превращает в , такой умница.
мне кажется, по количеству действий Gvim (в том числе под виндами) будет давать результат несколько быстрее: меню Синтаксис -> Сделать HTML с подсветкой. Пробелы он превращает в , такой умница.
0
APTANA IDE имхо вполне вариант для разработки и подсветка кода там есть:)
0
Sign up to leave a comment.
Покорим Ruby вместе! Капля десятая