Книга: Программирование на языке Ruby
2.21. Включение выражений в строку
2.21. Включение выражений в строку
Это легко позволяет сделать синтаксическая конструкция #{}
. Нет нужды думать о преобразовании, добавлении и конкатенации; нужно лишь интерполировать переменную или другое выражение в любое место строки:
puts "#{temp_f} по Фаренгейту равно #{temp_c} по Цельсию"
puts "Значение определителя равно #{b*b — 4*а*с}."
puts "#{word} это #{word.reverse} наоборот."
Внутри фигурных скобок могут находиться даже полные предложения. При этом возвращается результат вычисления последнего выражения.
str = "Ответ равен #{ def factorial(n)
n==0 ? 1 : n*factorial(n-1)
end
answer = factorial(3) * 7}, естественно."
# Ответ равен 42, естественно.
При интерполяции глобальных переменных, а также переменных класса и экземпляра фигурные скобки можно опускать:
print "$gvar = #$gvar и ivar = #@ivar."
Интерполяция не производится внутри строк, заключенных в одиночные кавычки (поскольку их значение не интерпретируется), но применима к заключенным в двойные кавычки встроенным документам и к регулярным выражениям.
- 2.1. Представление обычных строк
- 2.2. Альтернативная нотация для представления строк
- 2.3. Встроенные документы
- 2.4. Получение длины строки
- 2.5. Построчная обработка
- 2.6. Побайтовая обработка
- 2.7. Специализированное сравнение строк
- 2.8. Разбиение строки на лексемы
- 2.9. Форматирование строк
- 2.10. Строки в качестве объектов ввода/вывода
- 2.11. Управление регистром
- 2.12. Вычленение и замена подстрок
- 2.13. Подстановка в строках
- 2.14. Поиск в строке
- 2.15. Преобразование символов в коды ASCII и обратно
- 2.16. Явные и неявные преобразования
- 2.17. Дописывание в конец строки
- 2.18. Удаление хвостовых символов новой строки и прочих
- 2.19. Удаление лишних пропусков
- 2.20. Повтор строк
- 2.21. Включение выражений в строку
- 2.22. Отложенная интерполяция
- 2.23. Разбор данных, разделенных запятыми
- 2.24. Преобразование строки в число (десятичное или иное)
- 2.25. Кодирование и декодирование строк в кодировке rot13
- 2.26. Шифрование строк
- 2.27. Сжатие строк
- 2.28. Подсчет числа символов в строке
- 2.29. Обращение строки
- 2.30. Удаление дубликатов
- 2.31. Удаление заданных символов
- 2.32. Печать специальных символов
- 2.33. Генерирование последовательности строк
- 2.34. Вычисление 32-разрядного CRC
- 2.35. Вычисление МD5-свертки строки
- 2.36. Вычисление расстояния Левенштейна между двумя строками
- 2.37. base64-кодирование и декодирование
- 2.38. Кодирование и декодирование строк (uuencode/uudecode)
- 2.39. Замена символов табуляции пробелами и сворачивание пробелов в табуляторы
- 2.40. Цитирование текста
- 2.41. Заключение
- 4.12. Вычисление выражений
- 6.11. Вычисление арифметических выражений
- Включение
- Как выделить строку, столбец и ячейки
- Включение и отключение синхронного вывода
- 3. Null-значения и общее правило вычисления выражений
- Можно ли сделать командную строку цветной (как в фильме «Матрица»)?
- Как использовать технику разговорных выражений
- Разбор XPath-выражений
- Включение, выключение и настройка брандмауэра
- Виды выражений
- Включение поддержки электронной почты для досок обсуждений