Урок 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 году изучал программирование в институте на начальных курсах, единственное, во что я сразу «въехал» было как раз ООП. Поэтому на своих уроках я максимально подробно разжую этот материал.
Ну а пока в рамках небольшого домашнего задания настоятельно рекомендую попробовать в интерпретаторе повызывать методы различных классов, чтобы хотя бы знать, какими они обладают. Буквально на следующем уроке нам это все пригодится.
<<Предудущий урок Следующий урок>>