#ruby #function
Вопрос:
Я понял, что это возможно иметь #
в определении:
def Foo#bar "blah blah" end
Но я не уверен, что это значит. Я ожидал , что метод экземпляра bar
будет определен в классе Foo
, но, похоже, это не так. Что это значит?
Ответ №1:
#
начинается комментарий на ruby. Вы просто определяете вызываемый метод Foo
.
(Обратите внимание, что Foo#bar
это обычно используется для обозначения «метода bar
экземпляра класса Foo
«, но это не особенность синтаксиса Ruby!)
Комментарии:
1. @sawa вау, ты действительно заставил меня некоторое время думать, что это альтернатива определению этого внутри класса 🙂
2. @Дарт, Это было то, чего я хотел, и я попытался посмотреть, сработает ли это. Хахаха.
3. Нет. Вы можете определить метод класса с
def Foo.bar
помощью , но для того, чтобы создать метод экземпляра, я думаю, вам понадобитсяFoo.class_eval { def bar; ... end }
.