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

До сих пор мы видели несколько различных видов, или классов, объектов: строки, целые числа, дробные числа, массивы, а также несколько особых объектов (true, false и nil), о которых мы поговорим позже. В Ruby эти классы всегда записываются с заглавной буквы: String, Integer, Float, Array… и т. д. В общем случае, если мы хотим создать новый объект определённого класса, мы используем new:

a = Array.

new +

[12345]

#

Сложение

массивов.

b = String

. new +

'hello'

#

Сложение

строк.

c = Time.new

puts 'a =

'+a.to

s

puts 'b =

1 o t b. +

s

puts 'c =

'+c.to

s

a = 12345 b = hello

c = Wed Jun 28 02:11:24 GMT 2006

Так как мы можем создавать массивы и строки с помощью[…] и '…' соответственно, мы редко создаём их с помощью new. (Хотя это и не совсем очевидно из предыдущего примера, String.new создаёт пустую строку, а Array.new создаёт пустой массив.) Кроме того, числа являются особыми исключениями: вы не можете создать целое число с помощью Integer.new. Вам придётся просто записать число.

Класс TIME

И что же особенного в этом классе Time? Объекты класса Time представляют моменты времени. Вы можете прибавлять числа к (или вычитать из) объектов времени, чтобы получить новые моменты времени: прибавление 1.5 к моменту времени создаст новый момент, который на полторы секунды позже первого:

time = Time.new

#

Момент, когда вы получили эту web–страницу.

time2 = time + 60

#

Одной минутой позже.

puts time

puts time2

Wed

Jun

28

02

4 2 1 1

GMT

2006

Wed

Jun

28

02

12:24

GMT

2006

Вы также можете создавать объект времени, соответствующий определённому моменту, используя т^е.тк-^те:

puts

Time.mktime(2000,

1,

1)

# Двухтысячный год (Y2K).

puts

Time.mktime(1976,

8,

3, 10, 11)

# Когда я родился.

Sat

Jan

01

00:00:00

GMT

2000

Tue

u <

3 0

10:11:00

T M G

6 7 9 1

Обратите внимание: момент моего рождения задан по Тихоокеанскому летнему времени (Pacific Daylight Savings Time, PDT). Хотя, когда наступил 2000-й год, было Тихоокеанское стандартное время (Pacific Standard Time, PST), по крайней мере для нас, жителей Западного берега. Скобки здесь нужны, чтобы сгруппировать параметры метода mktime. Чем больше параметров вы указываете, тем более точным становится ваше время.

Вы можете сравнивать время с помощью методов сравнения (более раннее время меньше, чем более позднее время), а если вы вычтете одно время из другого, вы получите разницу между ними в секундах. Поиграйте с этим немного!

Попробуйте ещё кое-что

• Один миллиард секунд… Выясните точно, в какую секунду вы родились (если сможете). Вычислите, когда вы достигнете (или, возможно, уже достигли?) возраста в один миллиард секунд. А потом отметьте это в вашем календаре.

• С днём рождения! Спросите, в каком году человек родился, затем в каком месяце, потом в какой день. Вычислите, сколько ему лет, и выдайте ему большой ХЛОП! на каждый его день рождения.

Класс Hash

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

colorArray =

[]

# то же, что Array.new

colorHash =

{ }

# то же, что Hash.new

colorArray[0]

= 'красный'

colorArray[1]

= 'зелёный'

colorHash['строки']

colorHash['числа']

colorHash['^Ki4eBbie слова'] = 'синий' colorArray.each do |color| puts color end

colorHash.each do |codeType, color| puts codeType + ': ' + color end

красный

зелёный

синий

строки: красный ключевые слова: синий числа: зелёный

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

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

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

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

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

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

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

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

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