Задържат струнните обекти подредени последователности от байтове, обикновено символи, обикновено образуват части от текст, който може да се чете от хора. Те са много често срещан тип обект във всички езици за програмиране и рубин има редица на високо ниво и няколко ниско начина за създаване, достъп и манипулиране на String обекти.
Най-често струните се създават с a Строен буквал. А буквален е специален синтаксис на езика Ruby, който създава обект от конкретен тип. Например, 23 е буквален, който създава aFixnum обект. Що се отнася до струнните литерали, има няколко форми.
Едноцитати и двойно цитирани струни
Повечето езици имат струнен буквал, подобен на този, така че това може да е познато. Видовете цитати "(единичен цитат, апостроф или твърд цитат) и "(двоен цитат или мек цитат) се използват за затваряне на низови литерали, всичко между тях ще бъде превърнато в String обекти. Следващият пример демонстрира това.
Но има някои разлики между единични и двойни кавички. Двойни котировки или меки цитати
позволяват да се случи някаква магия зад кулисите. Най-полезна е интерполацията вътре в низовете, полезна за вмъкване на стойността на променлива в средата на низ. Това се постига с помощта на #{ … } последователност. Следващият пример ще ви поиска вашето име и ще ви поздрави, използвайки интерполация, за да вмъкнете вашето име в отпечатания низ.Имайте предвид, че всеки код може да влиза вътре в скобите, а не само имена на променливи. Ruby ще оцени този код и каквото и да е върнато, ще се опита да го вмъкне в низ. Така че можете също толкова лесно да кажете „Здравейте, # {get.chomp}“ и забравете за име променлива. Добре е обаче да не поставяте дълги изрази вътре в скобите.
Единични кавички, апострофи или твърди цитати са много по-рестриктивни. Вътре в единичните кавички, Ruby няма да изпълни интерполация или избягащи последователности различен от това да избягате от символа на един цитат и самата наклонена черта (\' и \\ съответно). Ако нямате намерение да използвате интерполация, се препоръчва да използвате единични кавички по-често, отколкото не.
Следващият пример ще се опита да интерполира променлива вътре в единични кавички.
Ако стартирате това, няма да получите грешка, но какво ще бъде отпечатано?
Интерполационната последователност се предава чрез неинтерпретирана.
Кога трябва да използвам единични и двойни кавички
Това е въпрос на стил. Някои предпочитат да използват двойни кавички през цялото време, освен ако не станат неудобни. Други предпочитат да използват единични кавички, освен ако интерполационното поведение не е предвидено. Няма нищо присъщо опасно за използването на двойни кавички през цялото време, но това прави някакъв код по-лесен за четене. Не е нужно да четете низ, когато четете код, ако знаете, че няма интерполации в него, защото знаете, че самият низ няма да има странични ефекти. Така че коя буквална форма на низовете, която използвате, зависи от вас, тук няма истински правилен и грешен начин.
Поредици за бягство
Какво става, ако в низ буквално искате да включите символ на цитата? Например низът "Стив каза" Му! " няма да работи. И нито ще „Не мога да докосна това!“. И двата тези низа включват символа на цитата вътре в низа, като ефективно завършват буквалния низ и причиняват грешка в синтаксиса. Можете да превключвате символи за цитати, като "Стив каза" Му! ", но това всъщност не решава проблема. Вместо това можете да избягате от всеки символ на цитата вътре в низ и той ще загуби специалното си значение (в този случай специалният смисъл е да затворите низ).
За да избягате от характера, добавете го с наклонена черта. Символът на обратната черта казва на Руби да игнорира всяко специално значение, което може да има следващият символ. Ако е съвпадащ символ на цитата, не завършвайте низа. Ако това е хеш знак, не стартирайте блок за интерполация. Следващият пример демонстрира това използване на наклонена черта за избягване на специални символи.
Символът на обратната черта може да се използва за премахване на всяко специално значение от следващия символ, но, объркващо, той може да се използва и за обозначаване на специално поведение в двойки с цитирани низове. Повечето от тези специални поведения са свързани с вмъкване на символи и байтови последователности, които не могат да бъдат въведени или представени визуално. Не всички струни са символни низове или могат да съдържат контролни последователности, предназначени за терминала, а не за потребителя. Ruby ви дава възможност да вмъквате тези видове низове, използвайки символа за бягство от наклонена черта.
- \ n - Символ на нов ред Най- поставя метод прави това автоматично, но ако искате да поставите такъв в средата на низ или низът е предназначен за нещо различно от поставя метод, можете да използвате това, за да вмъкнете нов ред в низ.
- \ t - символ на раздела. Символът на раздела премества курсора над (на повечето терминали) до кратно на 8, така че това е много полезно за показване на таблични данни. Има обаче по-добри начини за това и използването на символа на раздела се счита за малко архаично или хакши.
- \ nnn - Наклонена черта, последвана от 3 числа, ще обозначава ASCII символ, представен с 3 октални цифри. Защо октал? Най-вече по исторически причини.
- \ xnn - наклонена черта, x и 2 шестнадесетични цифри. Същото като окталната версия, само с шестнадесетични цифри.
Вероятно никога няма да използвате повечето от тях, но знайте, че те съществуват. И също така не забравяйте, че те работят само в двойно цитирани низове.
Следващата страница обсъжда многоредови низове и алтернативен синтаксис за литерални низове.
Многоредови струни
Повечето езици не позволяват многоредови струнни буквали, но Ruby го прави. Няма нужда да прекратявате низовете си и да добавяте повече низове за следващия ред, Ruby борави с многоредови струнни литерали просто добре с подразбиране синтаксис.
Алтернативен синтаксис
Както при повечето други литерали, Ruby предоставя алтернативен синтаксис за низови литерали. Ако използвате много символи за цитати, например в своите литерали, може да искате да използвате този синтаксис. Когато използвате този синтаксис е въпрос на стил, те обикновено не са необходими за низовете.
За да използвате алтернативния синтаксис, използвайте следната последователност за едноцитираните низове % q {…}. По същия начин използвайте следния синтаксис за низовете с двойно цитиране % Q {…}. Този алтернативен синтаксис следва всички същите правила като техните "нормални" братовчеди. Също така имайте предвид, че можете да използвате всякакви символи, които желаете, вместо скоби. Ако използвате скоба, квадратна скоба, ъглова скоба или скоби, съответстващият символ ще завърши буквалния. Ако не искате да използвате съвпадащи знаци, можете да използвате всеки друг символ (нищо не е буква или цифра). Буквалът ще бъде затворен с друг от същия символ. Следващият пример ви показва няколко начина за използване на този синтаксис.
Алтернативният синтаксис също работи като многоредов низ.