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

Тут можно читать онлайн Хэл Фултон - Программирование на языке Ruby - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ДМК Пресс, год 2007. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование на языке Ruby
  • Автор:
  • Жанр:
  • Издательство:
    ДМК Пресс
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    5-94074-357-9
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии.

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

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

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

Интервал:

Закладка:

Сделать

Метод putsобращается к методу to_sобъекта, чтобы получить его строковое представление. Можно считать, что это неявный вызов явного преобразования. То же самое справедливо в отношении интерполяции строк. Вот пример:

class Helium

def to_s

"He"

end

def to_str

"гелий"

end

end

e = Helium.new

print "Элемент "

puts e # Элемент He.

puts "Элемент " + e # Элемент гелий.

puts "Элемент #{e}" # Элемент He.

Как видите, разумное определение этих методов в собственном классе может несколько повысить гибкость применения. Но что сказать об идентификации объектов, переданных методам вашего класса?

Предположим, например, что вы написали метод, который ожидает в качестве параметра объект String. Вопреки философии «утипизации», так делают часто, и это вполне оправдано. Например, предполагается, что первый параметр метода File.new— строка.

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

def set_title(title)

if title.respond_to? :to_str

title = title.to_str

end

# ...

end

Ну а если объект не отвечает на вызов метода to_str? Есть несколько вариантов действий. Можно принудительно вызвать метод to_s; можно проверить, принадлежит ли объект классу Stringили его подклассу; можно, наконец, продолжать работать, понимая, что при попытке выполнить операцию, которую объект не поддерживает, мы получим исключение ArgumentError.

Короткий путь к цели выглядит так:

title = title.to_str rescue title

Он опирается на тот факт, что при отсутствии реализации метода to_strвозникнет исключение. Разумеется, модификаторы rescueмогут быть вложенными:

title = title.to_str rescue title.to_s rescue title

# Обрабатывается маловероятный случай, когда отсутствует даже метод to_s.

С помощью неявного преобразования можно было бы сделать строки и числа практически эквивалентными:

class Fixnum

def to_str

self.to_s end

end

str = "Число равно " + 345 # Число равно 345.

Но я не рекомендую так поступать: «много хорошо тоже нехорошо». В Ruby, как и в большинстве языков, строки и числа — разные сущности. Мне кажется, что ясности ради преобразования, как правило, должны быть явными.

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

2.17. Дописывание в конец строки

Для конкатенации строк применяется оператор <<. Он «каскадный», то есть позволяет выполнять подряд несколько операций над одним и тем же операндом-приемником.

str = "А"

str << [1,2,3].to_s << " " << (3.14).to_s

# str теперь равно "А123 3.14".

Если число типа Fixnumпринадлежит диапазону 0..255, то оно будет преобразовано в символ:

str = "Marlow"

str << 101 << ", Christopher"

# str теперь равно "Marlowe, Christopher".

2.18. Удаление хвостовых символов новой строки и прочих

Часто бывает необходимо удалить лишние символы в конце строки. Типичный пример — удаление символа новой строки после чтения строки из внешнего источника.

Метод chopудаляет последний символ строки (обычно это символ новой строки). Если перед символом новой строки находится символ перевода каретки ( \r), он тоже удаляется. Причина такого поведения заключается в том, что разные операционные системы неодинаково трактуют понятие «новой строки». В UNIX-подобных системах новая строка представляется символом \n. А в DOS и Windows для этой цели используется пара символов \r\n.

str = gets.chop # Прочитать, удалить символ новой строки.

s2 = "Some string\n" # "Some string" (нет символа новой строки).

s3 = s2.chop! # s2 теперь тоже равно "Some string".

s4 = "Other string\r\n"

s4.chop! # "Other string" (нет символа новой строки).

Обратите внимание, что при вызове варианта chop!операнд-источник модифицируется.

Важно еще отметить, что последний символ удаляется, даже если это не символ новой строки:

str = "abcxyz"

s1 = str.chop # "abcxy"

Поскольку символ новой строки присутствует не всегда, иногда удобнее применять метод chomp:

str = "abcxyz"

str2 = "123\n"

str3 = "123\r"

str4 = "123\r\n"

s1 = str.chomp # "abcxyz"

s2 = str2.chomp # "123"

# Если установлен стандартный разделитель записей, то удаляется не только

# \n, но также \r и \r\n.

s3 = str3.chomp # "123"

s4 = str4.chomp # "123"

Как и следовало ожидать, имеется также метод chomp!для замены «на месте». Если методу chompпередана строка-параметр, то удаляются перечисленные в ней символы, а не подразумеваемый по умолчанию разделитель записей. Кстати, если разделитель записей встречается в середине строки, то он не удаляется:

str1 = "abcxyz"

str2 = "abcxyz"

s1 = str1.chomp("yz") # "abcx"

s2 = str2.chomp("x") # "abcxyz"

2.19. Удаление лишних пропусков

Метод stripудаляет пропуски в начале и в конце строки, а вариант strip!делает то же самое «на месте».

str1 = "\t \nabc \t\n"

str2 = str1.strip # "abc"

str3 = str1.strip! # "abc"

#str1 теперь тоже равно "abc".

Под пропусками, как обычно, понимаются пробелы, символы табуляции и перевода на новую строку.

Чтобы удалить пропуски только в начале или только в конце строки, применяйте методы lstripи rstrip:

str = " abc "

s2 = str.lstrip # "abc "

s3 = str.rstrip # " abc"

Имеются также варианты lstrip!и rstrip!для удаления «на месте».

2.20. Повтор строк

В Ruby оператор (или метод) умножения перегружен так, что в применении к строкам выполняет операцию повторения. Если строку умножить на n, то получится строка, состоящая из n конкатенированных копий исходной:

etc = "Etc. "*3 # "Etc. Etc. Etc. "

ruler = " + " + (". "*4+"5" + "."*4+" + ")*3

# "+....5....+....5....+....5....+"

2.21. Включение выражений в строку

Это легко позволяет сделать синтаксическая конструкция #{}. Нет нужды думать о преобразовании, добавлении и конкатенации; нужно лишь интерполировать переменную или другое выражение в любое место строки:

puts "#{temp_f} по Фаренгейту равно #{temp_c} по Цельсию"

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Хэл Фултон читать все книги автора по порядку

Хэл Фултон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Программирование на языке Ruby, автор: Хэл Фултон. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x