Что если мы хотим сказать “Hello” без утомления наших пальцев? Мы должны создать метод!
Код def h
означает начало объявление метода. Он говорит Ruby, что мы
определяем метод, имя которого h
. Следующая строка – тело метода, та
же строка, что мы видели раньше: puts "Hello World"
. И, наконец,
последняя строка, end
, говорит Ruby, что мы завершили объявление
метода. Ответ от Ruby, => nil
, говорит нам, что он понял, что мы
завершили объявление метода.
Кратко о повторяющихся жизнях метода
Теперь давайте попробуем вызвать метод несколько раз:
Ну, это было просто. Вызвать метод в Ruby так же просто, как просто упомянуть его имя в коде. Если метод не принимает параметры – это все что вам нужно сделать. Вы можете добавить пустые скобки, если вам так нравится, но это не обязательно.
Что если мы хотим сказать hello одному человеку, а не всему миру?
Просто переопределим метод h
, чтобы он принимал имя как параметр.
Итак, это работает… но давайте на секунду задумаемся, что здесь происходит.
Места для интерполяции в String
Что такое #{name}
в коде выше? Это способ Ruby вставить что-либо в
строку. Кусок кода между фигурными скобками превратится в строку (если
это еще не строка) и потом подставится во внешнюю строку в этом месте.
Вы также можете использовать это, чтобы убедиться, что имя будет с
большой буквы:
Вы должны здесь отметить несколько других приемов. Один из них, что мы
опять вызываем метод без скобок. Если очевидно то, что вы хотите сделать
– скобки не обязательны. Другой прием – это параметр по умолчанию
World
. Это означает что, “Если имя не передано в качестве параметра,
используй параметр по умолчанию World
”.
Эволюционируем в Greeter (Приветствующего)
Что если мы хотим создать реального приветствующего, того кто запомнит ваше имя и поприветствует вас и всегда будет относиться к вам с уважением? Вы можете использовать для этого объект. Давайте создадим класс “Greeter”.
Новое ключевое слово здесь - class
. Оно служит для объявления нового
класса, который мы назвали Greeter и несколько методов для этого класса.
Также заметьте @name
. Это переменная объекта и она доступна для всех
методов в классе. Как вы можете видеть, она используется методами
say_hi
и say_bye
.
Итак, как мы сможем заставить этот класс Greeter работать? Создадим объект.