Фултон Хэл — Программирование на языке Ruby

Тут можно читать онлайн книгу Фултон Хэл - Программирование на языке Ruby - бесплатно полную версию (целиком). Жанр книги: Программирование. Вы можете прочесть полную версию (весь текст) онлайн без регистрации и смс на сайте Lib-King.Ru (Либ-Кинг) или прочитать краткое содержание, аннотацию (предисловие), описание и ознакомиться с отзывами (комментариями) о произведении.

Программирование на языке Ruby
Автор: Фултон Хэл
Количество страниц: 266
Язык книги: Русский
Язык оригинальной книги: Английский
Издатель: ДМК Пресс
Город печати: Москва
Год печати: 2007
ISBN: 5-94074-357-9
Прочитал книгу? Поставь оценку!
0 0

Программирование на языке Ruby краткое содержание

Программирование на языке Ruby - описание и краткое содержание, автор Фултон Хэл, читать бесплатно онлайн на сайте электронной библиотеки Lib-King.Ru.

Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов. Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии. Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.

Программирование на языке Ruby - читать онлайн бесплатно полную версию (весь текст целиком)

Программирование на языке Ruby - читать книгу онлайн бесплатно, автор Фултон Хэл

and or             
 Логическое И, ИЛИ

Некоторые из перечисленных символов служат сразу нескольким целям. Например, оператор

<<
обозначает поразрядный сдвиг влево, но также применяется для добавления в конец (массива, строки и т.д.) и как маркер встроенного документа. Аналогично знак
+
означает сложение чисел и конкатенацию строк. Ниже мы увидим, что многие операторы — это просто сокращенная запись вызова методов.

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

1.2.5. Пример программы

В любом руководстве первой всегда приводят программу, печатающую строку

Hello, world!
, но мы рассмотрим что-нибудь более содержательное. Вот небольшая интерактивная консольная программа, позволяющая переводить температуру из шкалы Фаренгейта в шкалу Цельсия и наоборот.

print "Введите температуру и шкалу (С or F): "

str = gets

exit if str.nil? or str.empty?

str.chomp!

temp, scale = str.split(" ")

abort "#{temp} недопустимое число." if temp !~ /-?\d+/

temp = temp.to_f case scale

 when "С", "с"

  f = 1.8*temp + 32

 when "F", "f"

  с = (5.0/9.0)*(temp-32)

 else

  abort "Необходимо задать С или F."

end

if f.nil?

 print "#{c} градусов C\n"

else

 print "#{f} градусов F\n"

end

Ниже приведены примеры прогона этой программы. Показано, как она переводит градусы Фаренгейта в градусы Цельсия и наоборот, а также как обрабатывает неправильно заданную шкалу или число:

Введите температуру и шкалу (С or F): 98.6 F

37.0 градусов С

Введите температуру и шкалу (С or F): 100 С

212.0 градусов F

Введите температуру и шкалу (С or F):

92 G Необходимо задать С или F.

Введите температуру и шкалу (С or F): junk F

junk недопустимое число.

Теперь рассмотрим, как эта программа работает. Все начинается с предложения

print
, которое есть не что иное, как вызов метода
print
из модуля
Kernel
. Данный метод выполняет печать на стандартный вывод. Это самый простой способ оставить курсор в конце строки.

Далее мы вызываем метод

gets
(прочитать строку из стандартного ввода) и присваиваем полученное значение переменной
str
. Для удаления хвостового символа новой строки вызывается метод
chomp!
.

Обратите внимание, что

print
и
gets
, которые выглядят как «свободные» функции, на самом деле являются методами класса
Object
(который, вероятно, наследует
Kernel
). Точно так же
chomp!
— метод, вызываемый от имени объекта
str
. При вызовах методов в Ruby обычно можно опускать скобки:
print "foo"
и
print("foo")
— одно и то же.

В переменной

str
хранится символьная строка, но могли бы храниться данные любого другого типа. В Ruby данные имеют тип, а переменные - нет. Переменная начинает существовать, как только интерпретатор распознает присваивание ей; никаких предварительных объявлений не существует.

Метод

exit
завершает программу. В той же строке мы видим управляющую конструкцию, которая называется «модификатор
if
». Он аналогичен предложению
if
, существующему в большинстве языков, только располагается после действия. Для модификатора
if
нельзя задать ветвь
else
, и он не требует закрытия. Что касается условия, мы проверяем две вещи: имеет ли переменная
str
значение (то есть не равна
nil
) и не является ли она пустой строкой. Если встретится конец файла, то будет истинно первое условие; если же пользователь нажмет клавишу Enter, не введя никаких данных, — второе.

Это предложение можно было бы записать и по-другому:

exit if not str or not str[0]

Эти проверки работают потому, что переменная может иметь значение

nil
, а
nil
в Ruby в логическом контексте вычисляется как «ложно». На самом деле как «ложно» вычисляются
nil
и
false
, а все остальное — как «истинно». Это означает, кстати, что пустая строка
""
и число 0 — не «ложно».

В следующем предложении над строкой выполняется операция

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

В следующем предложении мы видим пример множественного присваивания. Метод

split
разбивает строку на куски по пробелам и возвращает массив. Двум переменным в левой части оператора присваиваются значения первых двух элементов массива в правой части.

В следующем предложении

if
с помощью простого регулярного выражения выясняется, введено ли допустимое число. Если строка не соответствует образцу, который состоит из необязательного знака «минус» и одной или более цифр, то число считается недопустимым и программа завершается. Отметим, что предложение if оканчивается ключевым словом
end
. Хотя в данном случае это не нужно. Мы могли бы включить перед
end
ветвь
else
. Ключевое слово
then
необязательно; в этой книге мы стараемся не употреблять его.
Поделиться книгой

Оставить отзыв