Ruby за 20 минут. начинаем.

0
46
ruby за 20 минут. начинаем.
ruby за 20 минут. начинаем.

Как и обещал – буду двигаться в изучении основ Ruby с небольшими отчётами-переводами того материала, что есть. Сразу скажу – я не претендую на роль учителя, так как сам нужными знаниями не обладаю.

На днях приняли на работу в студию нового программиста, который специализируется именно на Ruby on Rails – надеюсь, что смогу какой-то опыт перенять у него. Завтра вроде должен выйти.

Первая часть, установка ruby (под Windows и Linux в моём случае), была скорее компиляцией из прочитанного и опробованного. Надеюсь, что проблем с установкой ни у кого не возникло.

Но одной установкой сыт не будешь. Нужно начинать пробовать. Трогать, прикасаться к тому, что кроется за этим красным рубиновым логотипом.

Итак, предполагая, что Ruby вы установили – начинаем.

Интерактивный интерпретатор Ruby

Ruby поставляется с программой IRB, которая на лету выполняет каждую команду, которую вы введёте. Играя с irb, пробуя на вкус разные конструкции можно легко усвоить то, что происходит в вашей программе.

Откройте IRB

Если вы маковод – в консоли вводите irb и жмите ENTER
Если вы под линуксом – открывайте ваш любимый shell, вводите irb и тоже жмите ENTER
В Windows такой способ тоже работает, но удобнее запустить из группы Ruby в меню Пуск программу fxri
irb(main):001:0>

Хорошо, открыли. Что дальше?

Введите: “Hello, World!” (С этого всегда начинают знакомство с новым языком программирования, так уж повелось).

irb(main):001:0> “Hello World”
=> “Hello World”

Ruby слушается вас!

Удивительно! Неужели это самая короткая “Hello world”-программа в мире?? Не совсем так. Вторая строка – это скорее отображение результата последнего выражения. То есть Ruby сообщает вам результат последнего выражения. Если же вы действительно хотите вывести на экран это приветствие, то код будет таким:

irb(main):002:0> puts “Hello World”
Hello World
=> nil

puts является основной командой для вывода в Ruby. А что же такое nil? Nil – это результат выражения. Наш puts ничего не возвращает после выполнения. Единственный его результат – это вывод на экран.

Ваш бесплатный калькулятор

Ну это совсем просто. Пробуйте 🙂

irb(main):003:0> 3+2
=> 5

Три плюс два. Результат 5. Очень просто. А что если вы хотите умножить 3 на 2? Выражение короткое и ввести его не составит труда, но проще будет нажать стрелку “вверх”, в строке ввода появится предыдущее выражение и вы его можете легко исправить. Для тех, кто привык работать в консоли – это прописные истины.

irb(main):004:0> 3*2
=> 6

Теперь попробуем вычислить три в квадрате:

irb(main):005:0> 3**2
=> 9

** в ruby – это метод для возведения в степень. А что если вы теперь хотим извлечь корень числа?

irb(main):006:0> Math.sqrt(9)
=> 3.0

Стоп. что это было? То, что мы вывели квадратный корень из 9 – это понятно. Но что такое Math?

Модули

Math встроенный модуль для математических выражений. Модули могут применяться в Ruby по-разному. И это основное применение: группировка аналогичных методы объединённых общим названием. Math – математический модуль и включает помимо sqrt() такие методы, как sin() и tan().

Далее идёт точка. Что она значит? Точка предшествует тому методу, который мы хотим вызвать. Тому методу, который получит передаваемый ему параметр. Параметр заключен в круглые скобки (хотя в ruby это необязательно). То есть мы вызвали метод sqrt и передали ему значение 9. Говоря по-русски – приказали выделить квадратный корень из 9.

В результате получили 3.0. Почему не просто 3? Дело в том, что квадратный корень в большинстве случаев возвращает не целое число и соответственно, разработчики предусмотрели этот момент, возвращая число с плавающей точкой.

А что если мы хотим сохранить результат какого-либо выражения? Сохраним его в переменную. Далее переменная может быть использована как то, на что ока указывает. Простой пример:

irb(main):007:0> a = 3 ** 2
=> 9
irb(main):008:0> b = 4 ** 2
=> 16
irb(main):009:0> Math.sqrt(a+b) => 5.0

Вообщем, мы очень даже неплохо ушли от традиционного “Привет, мир” к калькулятору 🙂 Продолжение будет дальше. (Пока по материалам сайта http://www.ruby-lang.org/en/)

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

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here