Вычленение и замена подстрок

июля 3, 2008

В Ruby к подстрокам можно обращаться разными способами. Обычно применяются
квадратные скобки, как для массивов, но внутри скобок может находиться пара объектов класса Fixnum, диапазон, регулярное выражение или строка. Ниже
мы рассмотрим все варианты.
Если задана пара объектов класса Fixnum, то они трактуются как смещение от
начала строки и длина, а возвращается соответствующая подстрока.

str = “Шалтай-Болтай”
subl = str[7,4] # [...]

Читать далее →

Преобразование строки в символ и обратно

июня 18, 2008

Строки и символы можно преобразовывать друг в друга с помощью методов to_str и to_sym:
а = “foobar”
b = :foobar
a == b.to_str   # true
b == a.to_sym   # true
Для метапрограммирования иногда бывает полезен такой метод:
class Symbol
def +(other)
(self.to_s + other.to_s) .to_sym
end
end
Он позволяет конкатенировать символы (или дописывать строку в конец символа). Ниже приведен пример использования; мы принимаем на входе символ [...]

Читать далее →

Символы, переменные и методы

июня 18, 2008

Наверное, чаще всего символы применяются для определения атрибутов класса:
class MyClass
attr_reader :alpha, :beta
attr_writer :gamma, -.delta
attr_accessor :epsilon
# …
end
Имейте в виду, что в этом фрагменте на самом деле исполняется некий код. Например, attr_accessor использует имя символа для определения имени переменной экземпляра, а также методов для ее чтения и изменения. Это не означает, что всегда имеется точное соответствие между [...]

Читать далее →

Символы как метазначения

июня 18, 2008

Мы нередко пользуемся исключениями, чтобы уйти от кодов возврата. Но никто не мешает возвращать коды ошибки, если вам так хочется. К тому же в Ruby метод может возвращать более одного значения.
В таком механизме часто возникает необходимость. Когда-то символ NUL кода ASCII вообще не считался символом. В языке С есть понятие нулевого указателя (null), в Pascal [...]

Читать далее →

Получение длины строки

июня 17, 2008

Для получения длины строки используется метод length. У него есть синоним size.
str1 = ‘Вася’
x = str1.length # 4
str2 = ‘Пупкин’
x = str2.size # 6

Читать далее →