A „húros irodalom” megértése Ruby-ban

click fraud protection

Karakterlánc-tárgyak tartanak rendelt sorozatok bájt, jellemzően karakterek, általában emberi olvasható szöveg darabokat képezve. Ezek nagyon általános objektumtípusok az összes programozási nyelvben, és Rubin számos magas szintű és néhány alacsony szintű lehetőséget kínál a String objektumok létrehozására, elérésére és manipulálására.

A húrokat leggyakrabban a-val hozzák létre Karakterlánc. A szó szerinti egy speciális szintaxis a Ruby nyelvben, amely egy adott típusú objektumot hoz létre. Például, 23 egy olyan szó, amely létrehoz egyFixnum tárgy. Ami a karakterlánc-literáloknak, számos formája van.

Egyszeres és dupla idézetű karakterláncok

A legtöbb nyelvnek ehhez hasonló string-betűje van, tehát ez ismerős lehet. Az idézetek típusai "(egyetlen idézet, aposztróf vagy kemény idézet) és "(dupla idézet vagy lágy idézet) karakterlánc-literálok beillesztésére használják, bármi köztük String-objektumokká alakul. A következő példa ezt bizonyítja.

De vannak különbségek az egy- és dupla idézetek között. Dupla idézetek vagy

instagram viewer
lágy idézetek lehetővé teszik, hogy mágia történjen a színfalak mögött. A legelőnyösebb a karakterláncon belüli interpoláció, amely egy változó értékének beszúrására szolgál egy karakterlánc közepére. Ezt a #{ … } sorrend. A következő példa megkérdezi a nevét és köszönti Önt, interpoláció segítségével illessze be a nevét a nyomtatott karakterláncba.

Vegye figyelembe, hogy bármilyen kód bekerülhet a fogszabályozóba, nem csak a változónevek. Ruby értékeli azt a kódot, és bármi is visszatér, megpróbálja beilleszteni a karakterláncba. Tehát ugyanolyan könnyen mondhatnád "Helló, # {gets.chomp}" és felejtsd el a név változó. Jó gyakorlat azonban, ha nem teszünk hosszú kifejezéseket a fogszabályozóba.

Egyedi idézetek, aposztrófok vagy kemény idézetek sokkal szigorúbbak. Az egyes idézetekben a Ruby nem végez interpolációt vagy menekülési szekvenciák kivéve az egyetlen idézőjelet és magát a perjelzést (\' és \\ illetőleg). Ha nem szándékozik interpolációt alkalmazni, akkor javasoljuk, hogy gyakrabban használja az idézőjeleket.

A következő példa megkísérel interpolálni egy változót az egyes idézetekben.

Ha ezt futtatja, akkor nem lesz hiba, de mi lesz kinyomtatva?

Az interpolációs szekvenciát értelmezés nélkül továbbítottuk.

Mikor kellene egy és dupla idézeteket használni?

Ez stílus kérdése. Néhányan inkább dupla idézőjeleket használnak, kivéve, ha kényelmetlenné válnak. Mások inkább egyszeres idézőjeleket használnak, kivéve, ha az interpolációs viselkedésre szánták. Nincs benne semmi veszélyes a dupla idézőjelek használatáról, de ez megkönnyíti néhány kód olvashatóságát. Kód olvasása közben nem kell olvasnia egy karakterláncot, ha tudja, hogy nincs interpoláció benne, mert tudod, hogy a karakterláncnak nem lesz mellékhatása. Tehát Ön dönti el, hogy melyik karakterlánc-betűtípust használja - itt nincs valódi helyes és rossz út.

Menekülési szekvenciák

Mi lenne, ha egy karakterláncban idézőjelet szeretne beilleszteni? Például a húr "Steve azt mondta:" Moo! " nem fog működni. És nem fog - Ezt nem lehet megérinteni!. Mindkét karakterlánc tartalmazza a karakterláncban található idézőjelet, gyakorlatilag véget vetve a karakterlánc literáljának, és szintaxis hibát okoz. Válthat az idéző ​​karakterek, például - Steve azt mondta: "Moo!", de ez nem igazán oldja meg a problémát. Ehelyett elkerülheti az idézőjeleket a karakterláncon belül, és elveszíti sajátos jelentését (ebben az esetben a különös jelentése a karakterlánc bezárása).

Egy karakter elkerüléséhez kösse rá a fordulójelű karakterre. A visszajelző karakter azt mondja Rubinek, hogy hagyja figyelmen kívül a következő karakter speciális jelentését. Ha ez egy megfelelő idézőjelet tartalmaz, ne fejezze be a karakterláncot. Ha hash jel, ne indítsa el az interpolációs blokkot. A következő példa bemutatja a visszajelzés ezen speciális karakterek elkerülésére történő használatát.

A visszajelző karakter felhasználható bármilyen speciális jelentés eltávolítására a következő karakterből, de zavarba ejtő módon a kettős idézetű karakterláncokban a speciális viselkedés jelölésére is használható. Ezeknek a speciális viselkedéseknek a legtöbbje olyan karakterek és byte-szekvenciák beillesztésével kapcsolatos, amelyek nem írhatók be vagy vizuálisan ábrázolhatók. Nem minden karakterlánc karakterlánc, vagy tartalmazhat a terminálnak, és nem a felhasználónak szánt vezérlési szekvenciákat. A Ruby lehetőséget ad az ilyen típusú húrok beillesztésére a visszajelző karakter használatával.

  • \ n - Új sor karakter. Az helyezi A módszer ezt automatikusan megteszi, de ha egyet szeretne beilleszteni egy karakterlánc közepére, vagy ha a karakterláncot a helyezi módszer, ezzel új sor beillesztésére használható egy karakterláncba.
  • \ t - Tab karakter. A tabulátor karakter mozgatja a kurzort (a legtöbb terminálon) 8-szorosra, tehát ez nagyon hasznos a táblázatos adatok megjelenítéséhez. Ennek ellenére vannak jobb módok, és a tabulátor karakter használata kissé archaikus vagy félénk.
  • \ nnn - A visszajelző, amelyet 3 szám követ, egy ASCII karaktert jelöl, amelyet 3 oktális szám jelez. Miért oktál? Leginkább történelmi okokból.
  • \ xnn - fordulójel, x és 2 hexadecimális számjegy. Ugyanaz, mint az oktális változat, csak hexa számjegyekkel.

Valószínűleg soha nem fogja használni ezek többségét, de tudja, hogy léteznek. És ne feledje, hogy csak duplán idézett karakterláncokban dolgoznak.

A következő oldal több soros karakterláncokat és egy alternatív szintaxist tárgyal a karakterlánc literálok számára.

Többvonalas húrok

A legtöbb nyelv nem engedélyezi a többsoros karakterláncokat, de a Ruby ezt engedélyezi. Nincs szükség a karakterláncok lezárására és a következő sorra további szavak beillesztésére. A Ruby a többsoros karakterláncot csak az alapértelmezés szerint kezeli szintaxis.

Alternatív szintaxis

A legtöbb más literálhoz hasonlóan, a Ruby alternatív szintaxist is biztosít a karakterlánc literálok számára. Ha például nagyon sok idézőjelet használ a literálokban, érdemes lehet ezt a szintaxist használni. Amikor ezt a szintaxist stílus kérdése, általában nem szükséges húrokhoz.

Az alternatív szintaxis használatához a következő sorozatot kell használni az egyszerre idézett karakterláncokhoz % q {…}. Hasonlóképpen, használja a következő szintaxist duplán idézett karakterláncokhoz % Q {…}. Ez az alternatív szintaxis ugyanazokat a szabályokat követi, mint a "normál" unokatestvéreik. Ezenkívül vegye figyelembe, hogy a merevítők helyett bármilyen karaktert használhat. Ha zárójelet, szögletes zárójelet, szögletes zárójelben vagy zárójelben használ, akkor a megfelelő karakter véget vet a literálnak. Ha nem akarja használni a megfelelő karaktereket, akkor bármilyen más szimbólumot használhat (bármit, nem betűt vagy számot). A betűt bezárják egy másik azonos szimbólummal. A következő példa bemutatja a szintaxis használatának több módját.

Az alternatív szintaxis több soros karakterláncként is működik.

instagram story viewer