Урок 2: «Знакомимся с Ruby поближе»


Здравствуйте, уважаемые читатели. Сегодня в этом уроке я познакомлю вас ближе с этим замечательным языком Ruby.

Скажу вам честно – сам я обратил внимание на него лишь только в конце 2011 года. И то это было лишь благодаря увиденному объявлении о вакансии Ruby on Rails разработчика. раньше мне хватало Perl со всеми его модулями на все случаи жизни и иногда Python, хотя почему-то его я недолюбливаю.

Не случайно я упомянул Perl. Несмотря на то, что Юкихиро Мацумото, создатель Ruby, решил переработать Python, все же много черт досталось языку именно от Perl. Даже само название было навеяно этим замечательным скриптовым языком. Сравните, Perl –это искаженное слово «жемчужина» (знатоки английского языка, я в курсе, что perl переводится как «колючка», а жемчужина – Pearl), Ruby – рубин.

Тем не менее, черты Питона тоже там легко найти. В общем, язык получился очень мощным и крайне легким в изучении. Считается, что на освоение Perl нужно около месяца, Python –около недели, а для Ruby достаточно дня. Так это или нет, посмотрите сами. Честно говоря, Perl и Ruby я изучил достаточно быстро, а вот с Питоном застрял из-за его непривычных синтаксических конструкций.

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

Оговорюсь сразу – Ruby полностью объектно-ориентированный язык. Если вы слабо знакомы с ООП, то начинать изучение этого языка просто бессмысленно. Здесь все представляет собой объекты. Все что Ruby может связать с именем переменной является объектом.

Сегодня мы программировать ничего не будем, а просто пробежимся по синтаксису.

Так как Ruby – интерпретируемый язык, то все выражения в нем выполняются построчно. Если в какой-то строке или выражении найдена ошибка – интерпретатор тут же прекратит обработку скрипта (а программы на интерпретируемых языках называются именно скриптами) и выдаст программисту сообщение об ошибке в нужном участке кода. Не нужно заботиться о точке входа в программу как в C++, Java, Delphi и в других компилируемых языках. Для новичков – программистов это очень удобно.

Синтаксис языка предельно лаконичен. Как Perl (вы уж простите, от этого языка я не отцеплюсь, действительно «колючка») он позволяет свободное именование переменных. Немного поясню на примере.

Интерпретируемые языки грешат тем, что у них нет четкой типизации данных. Допустим, у меня есть некая переменная value, в которую я на протяжении половины скрипта помещаю числа. Все нормально работает, но вот где-то я забыл что использовал это имя и поместил в value строку. Ошибки нет. value теперь строчный тип в нотации других языков. Но меня дальше понесло и вскоре я объявляю массив с этим именем. И так до бесконечности. Пока все работает, это просто будет называться дурным стилем программирования. Но вот когда что-то пойдет не так, то поиск ошибки превратится в ад. Своя безалаберность выльется в громкие проклятия, когда в нескольких участках кода будет фигурировать одна переменная, содержащая разные типы данных.

В языках строгой типизации строка это один тип данных, число – другой (о переменных и типах данных вы можете почитать в уроке 2 по С++). Это означает, что подобной путаницы там просто не может быть. Если объявил переменную с одним типом, то в процессе кода придется с ним и работать. Да, там есть явные и неявные приведения типов, но тип у переменной таким и останется. Мы будем знать, что a- это число, b-строка, c- массив. Для этого просто достаточно заглянуть в область объявления переменных. Суть, я думаю, вы уловили.

Чтобы указанной в примере путаницы не возникало, обычно используют негласное соглашение об именовании переменных. В Perl, например, числовой или строковый тип переменной обозначается знаком $, массив — @. В коде мы уже ясно увидим, что:

 

$a=34; #это число

@a=(1,2,4,5);# массив

Видите, очень удобно. Мы путаться уже здесь не будем. Поэтому, в Ruby следует подчиняться подобным правилам. А они следующие:

  • имена локальных переменных , а также псевдопеременных self и nil начинаются со строчной буквы или со знака подчеркивания. Лично я использую подчеркивания только в self (_self) и nil (_nil). Вы же вольны поступать, как вам удобно.
  • Глобальные переменные начинаются со знака доллара $ (о них мы поговорим позже)
  • Имена переменных экземляра (т.е. объекта) начинаются с @
  • Имена переменных класса предваряются @@
  • Константы пишутся как и во всех языках прописными буквами.

Попробуйте, проэкспериментируйте и увидите все удобство.

Всякая программа должна содержать комментарии. В Ruby довольно интересный к этому подход. С одной стороны, в нем есть обычный строчный комментарий, начинающийся после символа #:

$df=23 # это строчный комментарий.

А вот блочный (это когда несколько строк) задается следующей конструкцией:

=begin

Здесь ваш многострочный текст комментария

=end

Ruby – язык регистрозависимый. Это означает, что переменная a и A – не одно и тоже.

Пока на этом все. В уроке 3 мы познакомимся поближе со всеми этими типами и рассмотрим базовые операторы.

<<Предыдущий урок                                                          Следующий урок>>

Яндекс.Метрика