Программирование на языке Ruby
Программирование на языке Ruby читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
pos2 = str.index("bert") # 2pos3 = str.index(/in/) # 8pos4 = str.index(?W) # nilpos5 = str.index("bart") # nilpos6 = str.index(/Wein/) # nilМетод
rindexstr = "Albert Einstein"pos1 = str.rindex(?E) # 7pos2 = str.rindex("bert") # 2pos3 = str.rindex(/in/) # 13 (найдено самое правое соответствие)pos4 = str.rindex(?W) # nilpos5 = str.rindex("bart") # nilpos6 = str.rindex(/wein/) # nilМетод
include?str1 = "mathematics"flag1 = str1.include? ?e # trueflag2 = str1.include? "math" # truestr2 = "Daylight Saving Time"flag3 = str2.include? ?s # falseflag4 = str2.include? "Savings" # falseМетод
scanstr1 = "abracadabra"sub1 = str1.scan(/а./)# sub1 теперь равно ["ab","ас","ad","ab"]str2 = "Acapulco, Mexico" sub2 = str2.scan(/(.)(c.)/)# sub2 теперь равно [ ["A","ca"], ["l","со"], ["i","со"] ]Если при вызове задан блок, то метод поочередно передает этому блоку найденные значения:
str3 = "Kobayashi"str3.scan(/["aeiou]+[aeiou]/) do |x|print "Слог: #{x}n" endЭтот код выводит такой результат:
Слог: KoСлог: baСлог: уаСлог: shi2.15. Преобразование символов в коды ASCII и обратно
В Ruby символ представляется целым числом. Это поведение изменится в версии 2.0, а возможно и раньше. В будущем предполагается хранить символы в виде односимвольных строк.
str = "Martin"print str[0] # 77Если в конец строки дописывается объект типа
Fixnumstr2 = str << 111 # "Martino"2.16. Явные и неявные преобразования
На первый взгляд, методы
to_sto_strНо есть и различия. Во-первых, любой объект в принципе можно как-то преобразовать в строку, поэтому почти все системные классы обладают методом
to_sto_strКак правило, метод
to_strto_sto_strЯ уже сказал, что ни в одном системном классе не определен метод
to_strto_strПервое, что приходит на ум, — подкласс класса
StringStringto_strА вот пример из реальной жизни. Класс
PathnameStringrequire 'pathname'path = Pathname.new("/tmp/myfile")name = path.to_s # "/tmp/myfile"name = path.to_str # "/tmp/myfile" (Ну и что?)# Вот где это оказывается полезно...heading = "Имя файла равно " + pathputs heading# " Имя файла равно /tmp/myfile"В этом фрагменте мы просто дописали путь в конец обычной строки
"Имя файла равно"+Pathnameto_strPathnameStringНа практике методы
to_sto_strМетод
putsto_sclass Helium
