Программирование на языке Ruby
Шрифт:
2.3. Встроенные документы
Для представления длинной строки, занимающей несколько строк в тексте, можно, конечно, воспользоваться обычными строками в кавычках:
Но тогда отступ окажется частью строки.
Можно вместо этого воспользоваться встроенным документом, изначально предназначенным для многострочных фрагментов. (Идея и сам термин заимствованы из более старых языков.) Синтаксически он начинается с двух знаков
Но следите внимательно, чтобы после завершающего концевого маркера не было пробелов. В текущей версии Ruby маркер в такой ситуации не распознается.
Встроенные документы могут быть вложенными. В примере ниже показано, как передать методу три представленных таким образом строки:
По умолчанию встроенный документ ведет себя как строка в двойных кавычках, то есть внутри него интерпретируются управляющие последовательности и интерполируются выражения. Но если концевой маркер заключен в одиночные кавычки, то и весь документ ведет себя как строка в одиночных кавычках:
Если концевому маркеру встроенного документа предшествует дефис, то маркер может начинаться с красной строки. При этом удаляются только пробелы из той строки, на которой расположен сам маркер, но не из предшествующих ей строк документа.
Опишу стиль, который нравится лично мне. Предположим, что определен такой метод
Для ясности я включил подробные комментарии. В этом коде применяются конструкции, которые будут рассмотрены ниже
В качестве концевого маркера естественно употребить слово
2.4. Получение длины строки
Для получения длины строки служит метод
2.5. Построчная обработка
Строка в Ruby может содержать символы новой строки. Например, можно прочитать в память файл и сохранить его в виде одной строки. Применяемый по умолчанию итератор each в этом случае перебирает отдельные строки:
Выполнение этого кода дает следующий результат:
Альтернативно можно было бы воспользоваться методом
2.6. Побайтовая обработка
Поскольку на момент написания этой книги язык Ruby еще не поддерживал интернационализацию в полной мере, то символ и байт
В текущей версии Ruby строку можно преобразовать в массив односимвольных строк с помощью метода
Умри завтра
5. Рой Грейс
Детективы:
триллеры
рейтинг книги
Студент из прошлого тысячелетия
2. Соприкосновение миров
Фантастика:
героическая фантастика
попаданцы
аниме
рейтинг книги
Этот мир не выдержит меня. Том 2
2. Первый простолюдин в Академии
Фантастика:
фэнтези
попаданцы
рейтинг книги
Тепличный цветок
2. Сестры Кэллоуэй
Любовные романы:
современные любовные романы
рейтинг книги
Дневник (1887-1910)
Проза:
проза прочее
рейтинг книги
Виктор Глухов агент Ада. Компиляция. Книги 1-15
Виктор Глухов агент Ада
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
попаданцы
рейтинг книги
Старый, но крепкий 5
5. Культивация без насилия
Фантастика:
рпг
аниме
уся
фэнтези
рейтинг книги
Антон Чехов
Проза:
историческая проза
рейтинг книги
Тринадцатый IX
9. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
сказочная фантастика
рейтинг книги
Я все еще не царь. Книга XXVI
26. Дорогой барон!
Фантастика:
попаданцы
аниме
рейтинг книги
Третий. Том 4
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
рейтинг книги
Страх — это ключ
Детективы:
крутой детектив
рейтинг книги