Izpratne par “stīgu burtiem” Rubīnā

click fraud protection

Stīgu objekti turas pasūtītas sekvences baitu, parasti rakstzīmju, parasti, lai veidotu cilvēkiem lasāmu tekstu. Tie ir ļoti izplatīts objektu tips visās programmēšanas valodās, un Rubīns ir vairāki augsta līmeņa un daži zema līmeņa veidi, kā izveidot, piekļūt String objektiem un ar tiem manipulēt.

Stīgas visbiežāk tiek veidotas ar Stīgu burtiski. A burtiski ir īpaša Rubina valodas sintakse, kas rada noteikta veida objektu. Piemēram, 23 ir burtiņš, kas radaFixnum objekts. Stīgu burtiem ir vairākas formas.

Viena citāti un divreiz citētas stīgas

Lielākajai daļai valodu ir virkne burtiski līdzīga šai, tāpēc tas, iespējams, ir pazīstams. Citātu veidi ', (viens citāts, apostrofs vai ciets citāts) un "(divkāršs citāts vai mīksts citāts) tiek izmantoti, lai pievienotu virkņu burtus, viss, kas starp tiem tiek pārvērsts par virknes objektiem. Šis piemērs to parāda.

Tomēr starp atsevišķām un dubultām pēdiņām ir dažas atšķirības. Divkāršās pēdiņas vai mīkstas pēdiņas ļauj aizraujošai maģijai notikt. Visnoderīgākā ir interpolācija virkņu iekšpusē, noderīga mainīgā vērtības ievietošanai virknes vidū. To panāk, izmantojot

instagram viewer
#{ … } secība. Šis piemērs lūgs jūsu vārdu un sveiks jūs, izmantojot interpolāciju, lai ievietotu savu vārdu drukātajā burtā.

Ņemiet vērā, ka bikšturi var ievadīt jebkurš kods, ne tikai mainīgie nosaukumi. Rubīns novērtēs šo kodu, un neatkarīgi no tā, kas tiks atgriezts, mēģinās to ievietot virknē. Tātad jūs varētu tikpat viegli pateikt Sveiki, # {gets.chomp} un aizmirst par vārds mainīgs. Tomēr tā ir laba prakse nelikt garas izteiksmes brekešu iekšpusē.

Atsevišķas pēdiņas, apostrofi vai grūti citāti ir daudz ierobežojošāki. Atsevišķo kotējumu iekšpusē Rubīns neveic interpolāciju vai bēgšanas sekvences izņemot vienu citāta rakstzīmi un pašu slīpsvītru (\' un \\ attiecīgi). Ja neplānojat izmantot interpolāciju, ieteicams biežāk izmantot atsevišķās pēdiņas.

Šis piemērs mēģinās interpolēt mainīgo atsevišķās pēdiņās.

Ja to palaidīsit, kļūda netiks parādīta, bet kas tiks izdrukāts?

Interpolācijas secība tika nodota nesaprotami.

Kad man vajadzētu izmantot vienreizējus un divvietīgus piedāvājumus

Tas ir stila jautājums. Daži dod priekšroku visu laiku izmantot dubultās pēdiņas, ja vien tās nerada neērtības. Citi labprātāk izmantotu atsevišķas pēdiņas, ja vien nav paredzēta interpolācijas uzvedība. Tur nekas nav raksturīgs bīstams par divkāršu pēdiņu izmantošanu visu laiku, taču tas kādu kodu padara vieglāk lasāmu. Pārlasot kodu, jums nav jālasa virkne, ja zināt, ka tajā nav interpolācijas, jo jūs zināt, ka virknei nebūs nekādu blakus efektu. Tātad, kuru stīgu burtisko formu jūs izmantojat, ir atkarīgs no jums, šeit nav īsta pareiza un nepareiza ceļa.

Escape sekvences

Ko darīt, ja burtu burtā vēlaties iekļaut citāta rakstzīmi? Piemēram, virkne "Stīvs teica" Moo! " nedarbosies. Un tā arī nebūs "To nevaru pieskarties!". Abas šīs virknes ietver pēdiņas rakstzīmi virknes iekšpusē, faktiski beidzot virknes burtus un izraisot sintakses kļūdu. Varat pārslēgt citātu rakstzīmes, piemēram 'Stīvs teica: "Moo!", bet tas patiesībā neatrisina problēmu. Tā vietā jūs varat izvairīties no jebkura virknes iekšpusē esoša citāta, un tas zaudēs savu īpašo nozīmi (šajā gadījumā īpaša nozīme ir aizvērt virkni).

Lai izvairītos no rakstzīmes, papildiniet to ar slīpsvītru. Aizmugures slīpsvītra raksturs liek Rubīnam ignorēt īpašās nozīmes, kas var būt nākamajam varonim. Ja tas ir atbilstošs citāta raksturs, nebeidziet virkni. Ja tā ir hash zīme, nesāciet interpolācijas bloku. Šis piemērs parāda šo slīpsvītru izmantošanu, lai izvairītos no īpašajām rakstzīmēm.

Aizmugures slīpsvītra rakstzīmi var izmantot, lai no nākamās rakstzīmes noņemtu jebkādu īpašu nozīmi, taču, mulsinoši, to var izmantot arī, lai apzīmētu īpašo uzvedību divkārši citētās virknēs. Lielākā daļa šo īpašo uzvedību ir saistīta ar rakstzīmju un baitu secību ievietošanu, kuras nevar drukāt vai vizuāli attēlot. Ne visas virknes ir rakstzīmju virknes vai var saturēt vadības sekvences, kas paredzētas terminālim, nevis lietotājam. Rubīns dod jums iespēju ievietot šāda veida virknes, izmantojot aizmugures slīpuma rakstzīmi.

  • \ n - jaunas līnijas raksturs. liek metode to dara automātiski, bet, ja vēlaties ievietot virknes vidū vai virkne ir paredzēta citam, nevis liek metodi, varat to izmantot, lai virknē ievietotu jaunu līniju.
  • \ t - tabulas burts. Tabulācijas zīmes raksturs pārvieto kursoru virs (lielākajā daļā terminālu) uz 8 skaitli, tāpēc tas ir ļoti noderīgi, lai parādītu tabulas datus. Tomēr ir arī labāki veidi, kā to izdarīt, un tabulas zīmes lietošana tiek uzskatīta par mazliet arhaisku vai haizīvu.
  • \ nnn - slīpsvītra, kurai seko 3 cipari, apzīmēs ASCII rakstzīmi, ko attēlo 3 oktāļu cipari. Kāpēc astoņkājis? Galvenokārt vēsturisku iemeslu dēļ.
  • \ xnn - slīpsvītru, x un 2 sešciparu skaitlis. Tāda pati kā oktālā versija, tikai ar sešciparu skaitļiem.

Jūs, iespējams, nekad neizmantojat lielāko daļu no šiem, taču zināt, ka tie pastāv. Un arī atcerieties, ka viņi strādā tikai ar divreiz citētām stīgām.

Nākamajā lappusē ir aplūkotas daudzrindu virknes un alternatīva sintakse virkņu burtiem.

Daudzrindu stīgas

Lielākā daļa valodu nepieļauj daudzrindu virkņu burtus, bet Ruby to atļauj. Nevajag izbeigt virknes un nākamajai rindiņai pievienot vairāk virkņu. Ruby ar daudzpusēju virkņu burtiem tiek apstrādāts precīzi, izmantojot noklusējuma iestatījumus. sintakse.

Alternatīvā sintakse

Tāpat kā lielākajā daļā citu literāru, arī Rubīns nodrošina alternatīvu sintaksi stīgu burtiem. Ja, piemēram, burtos izmantojat daudz citātu rakstzīmju, iespējams, vēlēsities izmantot šo sintakse. Kad jūs izmantojat šo sintakse, tas ir stila jautājums, stīgām tās parasti nav vajadzīgas.

Lai izmantotu alternatīvo sintakse, vienreiz citētajām virknēm izmantojiet šo secību % q {…}. Līdzīgi izmantojiet šo sintaksi divtik citētām stīgām % Q {…}. Šī alternatīvā sintakse ievēro visus tos pašus noteikumus kā viņu “parastie” brālēni. Ņemiet vērā arī to, ka brekešu vietā varat izmantot jebkuras vēlamās rakstzīmes. Ja izmantojat breketi, kvadrātiekavu, leņķa iekavu vai iekavas, tad ar atbilstošo rakstzīmi beidzas burtiski. Ja nevēlaties izmantot atbilstošās rakstzīmes, varat izmantot jebkuru citu simbolu (jebko, kas nav burts vai cipars). Burts tiks aizvērts ar citu ar tādu pašu simbolu. Šajā piemērā parādīti vairāki šīs sintakse izmantošanas veidi.

Alternatīvā sintakse darbojas arī kā daudzrindu virkne.

instagram story viewer