Урок Ruby №10 : «Расскажи о себе»


Когда-то давно я начал вести блог programbeginner.ru. Тогда я работал программистом и много подрабатывал на фрилансе опять же программированием. Мне были интересны все новые языки для меня и Ruby, как симбиоз Perl, который мне всегда нравился и Python, который немного рвал шаблоны своими отступами вместо привычных фигурных скобок, просто не мог не обратить на себя внимание. Я тогда не задумывался о карьере RoR разработчика, да и честно, все равно скептически отношусь к рельсам. Но язык купил своей простой и тем, что просто уйма утилит в Kali Linux написана на Ruby.

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

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

Единственное, что если вы читаете все эти уроки с первого и до конца, как говорится, наверняка в глаза бросится тот факт, что стиль изложения сильно изменился. Да и порядок мыслей в уроках тоже. Все-таки, я пять лет назад написал здесь последний урок. В 2012 году… Соответственно, я стал старше, язык претерпел изменения, да и ход мыслей уже не тот. Поэтому не удивляйтесь тому, как изменился стиль.

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


puts 12.class

Выдаст на экран, что это Integer. Но мы и сами знаем, что это целое число, хотя по мере усложнения уроков и написания программ все же эта «напоминалочка» класса нам пригодится.

Тем не менее, задумка Ruby была грандиозной – добавить в скрупулезный Python некую бесбашенность  Perl.

Так как мы используем объекты, то нам доступны такие «вкусности» как методы этих объектов. Да, в Ruby даже вышеупомянутый puts является методом. К сожалению, я пока не осветил в этих уроках общую концепцию объектно-ориентированного программирования, это будет в следующих уроках. Просто пока в рамках того, что вы знаете, метод –это небольшая часть кода, выполняющая ту или иную задачу и принадлежащий к какому то классу. Например, у класса String есть методы, позволяющие привести строку в верхний или нижний регистр. А как думаете, если числу применить строчный метод upcase, приводящий строку к верхнему регистру, что получится? Да ничего, потому что к цифрам это применять бессмысленно. Именно поэтому класс Integer или Float обладаете практически другим наборов методов.

 

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

Тем не менее, язык обладает рядом готовых и полезных методов. Посмотреть список методов очень просто:


puts 12.methods

Мы получим полный список всех методов класса Integer. Аналогично, что:


puts  ‘Coder’.methods

Выведет нам список методов работы со строками.

Также обратите внимание на одну вещь. Да, число не умеет использовать 95 % методов строк (оставшиеся 5% это методы доставшиеся от родителя и они будут и в других классах-потомках этого родителя).  Но тут вопрос внимательности : 12 – это число, а «12» — это строка.

Вообще, тема ООП очень и очень интересна. По крайней мере, когда я еще в далеком в 2004 году изучал программирование в институте на начальных курсах, единственное, во что я сразу «въехал» было как раз ООП.  Поэтому на своих уроках я максимально подробно разжую этот материал.

Ну а пока в рамках небольшого домашнего задания настоятельно рекомендую  попробовать в интерпретаторе повызывать методы различных классов, чтобы хотя бы знать, какими они обладают. Буквально на следующем уроке нам это все пригодится.

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

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