Типы данных Ruby
В этой главе мы познакомимся с базовыми типами данных Ruby.
Типы данных, поддерживаемые Ruby, включают базовые Number, String, Ranges, Symbols, а также специальные значения true, false и nil и две важные структуры данных — Array и Hash.
Числовые типы (Number)
1. Целые числа
Существует два типа целых чисел. Если в пределах 31 бита (четырёх байтов), это экземпляр Fixnum. Если оно превышает этот предел, это экземпляр Bignum.
Диапазон целых чисел — от -230до 230-1, и целые числа в этом диапазоне являются объектами классаFixnum. Когда значение целого числа больше или равно 2 в 30-й степени ( -262до 262-1), оно автоматически преобразуется в тип Bignum.
Перед целым числом можно указать необязательный ведущий знак, необязательный индикатор основания (0 для восьмеричной, 0x для шестнадцатеричной, 0b для двоичной), за которым следует последовательность цифр. Символы подчёркивания в числовой строке игнорируются.
Можно получить целочисленное значение ASCII-символа или escape-последовательности, отмеченной вопросительным знаком.
Пример
Тип с плавающей запятой
Ruby поддерживает числа с плавающей запятой. Это числа с десятичными дробями. Числа с плавающей запятой являются объектами классаFloatи могут быть любыми из следующих.
Пример
Пример
Арифметические операции
Операторы сложения, вычитания, умножения и деления: + - * /; оператор возведения в степень — **
Показатель степени не обязательно должен быть целым числом, например
Пример
Строковый тип
Строка Ruby — это просто последовательность 8-битных байтов, и они являются объектами класса String.
Строки, заключенные в двойные кавычки, допускают подстановку и использование escape-последовательностей с обратной косой чертой; строки, заключенные в одинарные кавычки, не допускают подстановки и допускают только две escape-последовательности с обратной косой чертой: \\ и \'.
Это даст следующий результат:
escape using "\" That's right
Вы можете использовать последовательность#{ expr }для подстановки значения любого выражения Ruby в строку. Здесь expr может быть любым выражением Ruby.
Пример
Это даст следующий результат:
相乘 : 86400
Пример
Результат вывода:
Ruby Ruby,ok
Обозначения обратного слэша
В следующей таблице перечислены обозначения обратного слэша, поддерживаемые Ruby:
| Обозначения | Представляемый символ |
|---|---|
| \n | Новая строка (0x0a) |
| \r | Возврат каретки (0x0d) |
| \f | Подача страницы (0x0c) |
| \b | Возврат на шаг (0x08) |
| \a | Звонок (0x07) |
| \e | Escape (0x1b) |
| \s | Пробел (0x20) |
| \nnn | Восьмеричная запись (n — 0-7) |
| \xnn | Шестнадцатеричная запись (n — 0-9, a-f или A-F) |
| \cx, \C-x | Control-x |
| \M-x | Meta-x (c | 0x80) |
| \M-\C-x | Meta-Control-x |
| \x | Символ x |
Подробнее о строках Ruby см.Ruby String。
Массивы
Литералы массива определяются значениями, разделёнными запятыми, внутри [], а также поддерживают определения диапазонов.
- (1) Доступ к массивам осуществляется по индексу через []
- (2) Вставка, удаление и замена элементов с помощью операций присваивания
- (3) Используйте + и - для объединения и удаления элементов, и коллекция возвращается как новая коллекция.
- (4) Знак << добавляет элементы к исходным данным.
- (5) Знак * повторяет элементы массива.
- (6) Символы | и & используются для операций объединения и пересечения (обратите внимание на порядок).
Пример
Попробуйте »
Это даст следующий результат:
fred 10 3.14 This is a string last element
Для получения дополнительных сведений о массивах Ruby см.Массив Ruby。
Тип Hash
Хэш Ruby — это последовательность пар ключ/значение, заключённых в фигурные скобки, где ключи и значения разделяются запятыми и последовательностью =>. Запятые в конце игнорируются.
Пример
Пример
Попробуйте »
Это даст следующий результат:
red is 3840 green is 240 blue is 15
Для получения дополнительной информации о хэшах Ruby см.Ruby Hash。
Тип Range
Диапазон представляет собой интервал.
Диапазон задаётся указанием начального и конечного значения. Диапазоны можно создать с помощью s..e и s...e или с помощью Range.new.Диапазон, созданный с помощью .., проходит от начального значения до конечного значения (включительно). Диапазон, созданный с помощью ..., проходит от начального значения до конечного значения (исключительно). При использовании в качестве итератора диапазон возвращает каждое значение в последовательности.
Диапазон (1..5) означает, что он содержит значения 1, 2, 3, 4, 5, а диапазон (1...5) означает, что он содержит значения 1, 2, 3, 4.
Это даст следующий результат:
10 11 12 13 14 15
Для получения дополнительной информации о диапазонах Ruby см.Ruby Range。
Другие расширения