Читаем Учись программировать полностью

или не быть', на самом деле я говорю: self.puts 'быть или не быть'. Но что же такое self? Это специальная переменная, которая указывает на тот объект, в котором вы находитесь. Мы пока что не знаем, как находиться внутри объекта, но покуда мы это не выяснили, мы всегда будем находиться в большом объекте, которым является… вся наша программа! И к счастью для нас, у этой программы есть несколько собственных методов, наподобие puts и gets. Посмотрите:

iCantBelieveIMadeAVariableNameThisLongJustToPointToA3 = 3 puts iCantBelieveIMadeAVariableNameThisLongJustToPointToA3 self.puts iCantBelieveIMadeAVariableNameThisLongJustToPointToA3 3 3

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

Забавные строковые методы

Давайте изучим несколько забавных строковых методов. Вам не нужно их все запоминать; достаточно просто ещё раз взглянуть на эту страницу, если вы их позабудете. Я только хочу показать вам небольшую часть того, что могут делать строки. На самом деле, я и сам не могу запомнить даже половины строковых методов – но это нормально, потому что в Интернете есть замечательные справочники, где перечислены и объяснены все строковые методы. (Я покажу вам, где их найти в конце этого учебника.) Серьёзно, я даже не хочу знать все строковые методы: это всё равно, что знать каждое слово в словаре. Я прекрасно могу говорить по-английски, не зная всех слов в словаре… и ведь не в этом же заключается сам смысл словаря? Вам ведь не требуется знать всё, что в нём содержится?

Итак, наш первый строковый метод это reverse, который выдаёт значение строки, перевёрнутое задом наперёд:

varl = 'барк' var2 = 'телекс'

var3 = 'Вы можете произнести это предложение наоборот?'

puts varl.reverse

puts var2.reverse

puts var3.reverse

puts varl

puts var2

puts var3

краб

скелет

?торобоан

еинежолдерп отэ итсензиорп

етежом ыВ

барк

телекс

Вы можете

произнести это предложение

наоборот?

Как видите, reverse не переворачивает значение исходной строки, он просто создаёт её новую перевёрнутую копию. Вот почему в vari по-прежнему содержится 'барк' даже после того, как мы вызвали reverse у vari.

Другой строковый метод это length, который сообщает нам количество символов (включая пробелы) в строке:

puts 'Как Ваше полное имя?' name = gets.chomp

puts 'Вы знаете, что Ваше имя состоит из '+name.length+' символов,

'+name+'?'

Как Ваше полное имя?

Christopher David Pine

#

Ой-ё-ёй! Что-то не сработало, и, кажется, это случилось где-то после строки name = gets.chomp… Вы понимаете, в чём дело? Поглядим, сможете ли вы разобраться с этим.

Причина заморочки – в методе length: он выдаёт нам число, а нам нужна строка. Исправить это довольно просто: мы только воткнём to_s (и скрестим пальцы на удачу):

puts 'Как Ваше полное имя?' name = gets.chomp

puts 'Вы знаете, что Ваше имя состоит из '+name.length.to_s+' символов, '+name+'?'

Как Ваше полное имя?

Christopher David Pine

Вы знаете, что Ваше имя состоит из 22 символов, Christopher David Pine?

Нет, я этого не знал. Внимание: это количество символов в моём имени, а не количество букв (сосчитайте их). Думаю, мы могли бы написать программу, которая спрашивает ваше имя, отчество и фамилию по отдельности, а затем складывает их длины… эй, почему бы вам это не сделать? Давайте, я подожду.

И что, сделали? Хорошо! Нравится программировать, не так ли? А вот после нескольких следующих глав вы сами изумитесь тому, что вы сможете делать.

Итак, есть ещё несколько строковых методов, которые изменяют регистр букв (заглавных или строчных) в вашей строке. upcase изменяет каждую строчную букву на заглавную, а downcase изменяет каждую заглавную букву на строчную. swapcase переключает регистр каждой буквы в строке, и наконец, capitalize работает совсем как downcase за исключением того, что он переводит первую букву в заглавную (если это буква).

letters = 'aAbBcCdDeE'

puts

letters

upcase

puts

letters

downcase

puts

letters

swapcase

puts

letters

capitalize

puts

'a'.capitalize

puts

letters

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных