'Jousikirjaimien' ymmärtäminen Rubyssa

Merkkijono-esineet pitävät kiinni tilatut sekvenssit tavua, tyypillisesti merkkejä, yleensä muodostaen kappaleita ihmisen luettavissa olevasta tekstistä. Ne ovat hyvin yleinen kohdetyyppi kaikissa ohjelmointikielissä, ja Rubiini on useita korkean ja muutaman matalan tason tapoja luoda, käyttää ja käyttää String-objekteja.

Jouset luodaan useimmiten näppäimellä Merkkijono kirjaimellinen. kirjaimellinen on erityinen syntaksi Ruby-kielellä, joka luo tietyn tyyppisen objektin. Esimerkiksi, 23 on kirjaimella, joka luoFixnum esine. Jousikirjaimilla on useita muotoja.

Yksinlainaukset ja kaksoislainaukset

Useimmilla kielillä on samanlainen merkkijono-kirjaimellinen, joten tämä saattaa olla tuttu. Lainaustyypit '(yksittäinen lainaus, sanat tai kova tarjous) ja "(kaksoislainaus tai pehmeä tarjous) käytetään merkkijonon kirjaimien sulkemiseen, mikä tahansa niiden välillä tehdään merkkijono-objekteiksi. Seuraava esimerkki osoittaa tämän.

Mutta yhden ja kahden lainauksen välillä on joitain eroja. Tuplalainaus tai

instagram viewer
pehmeät lainaukset antaa mahdollisuuden taikuuden tapahtumiseen kulissien takana. Hyödyllisin on interpolointi merkkijonojen sisällä, hyödyllinen lisättäessä muuttujan arvo merkkijonon keskelle. Tämä saavutetaan käyttämällä #{ … } sekvenssi. Seuraava esimerkki kysyy sinulta nimeäsi ja tervehtii sinua lisäämällä interpoloinnin avulla nimesi tulostettuun merkkijonoon.

Huomaa, että mikä tahansa koodi voi mennä housunkannattimien sisällä, ei vain muuttujien nimet. Ruby arvioi koodin ja palautettavansa yrittää lisätä sen merkkijonoon. Joten voisit sanoa yhtä helposti "Hei, # {gets.chomp}" ja unohda nimi muuttuja. On kuitenkin hyvä käytäntö olla asettamatta pitkiä lausekkeita housunkannattimien sisään.

Yksittäiset lainaukset, apostrofit tai kovat tarjoukset ovat paljon rajoittavampia. Yksittäisten lainausten sisällä Ruby ei suorita interpolointia tai paeta-sekvenssejä muuten kuin yksittäisen lainausmerkin ja itse alaviiran paeta (\' ja \\ vastaavasti). Jos et aio käyttää interpolointia, on suositeltavaa käyttää yksittäisiä lainauksia useammin kuin ei.

Seuraava esimerkki yrittää interpoloida muuttujan yksittäisten lainausmerkkien sisällä.

Jos suoritat tämän, et saa virhettä, mutta mitä tulostetaan?

Interpolointisekvenssi johdettiin tulkitsematta.

Milloin minun pitäisi käyttää yksittäisiä ja tuplalainauksia

Tämä on tyylin kysymys. Jotkut mieluummin käyttävät kaksinkertaisia ​​lainausmerkkejä koko ajan, elleivät niistä ole haittaa. Toiset käyttäisivät mieluummin yksittäisiä lainausmerkkejä, ellei interpolointikäyttäytymistä ole tarkoitettu. Mikään ei ole luonnostaan vaarallinen noin kaksinkertaisen lainausmerkin käytöstä koko ajan, mutta se helpottaa joidenkin koodien lukemista. Sinun ei tarvitse lukea merkkijonoa lukeessasi koodia, jos tiedät, että siinä ei ole interpolointia, koska tiedät, että merkkijonolla itsessään ei ole sivuvaikutuksia. Joten mikä merkkijono kirjaimellisessa muodossa käytät, on sinun päättäjäsi, täällä ei ole oikeaa ja väärää tietä.

Escape-sekvenssit

Entä jos haluat kirjoittaa merkkijonon kirjaimella lainausmerkin? Esimerkiksi merkkijono "Steve sanoi" Moo! " ei toimi. Eikä niin "En voi koskea tähän!". Nämä molemmat merkkijonot sisältävät merkkijonon sisällä olevan lainausmerkin, joka loppuu merkkijonon kirjaimiin ja aiheuttaa syntaksivirheen. Voit vaihtaa lainausmerkkejä, kuten 'Steve sanoi "Moo!"', mutta se ei oikeastaan ​​ratkaise ongelmaa. Sen sijaan voit paeta mitä tahansa merkkijonoa merkkijonosta, ja se menettää erityisen merkityksensä (tässä tapauksessa erityinen tarkoitus on sulkea merkkijono).

Merkki paeta lisäämällä se alaviivalla. Selkänoja merkki käskee Rubyn jättämään huomioimatta seuraavan merkin erityiset merkitykset. Jos se on vastaava lainausmerkki, älä lopeta merkkijonoa. Jos se on hash-merkki, älä aloita interpolointilohkoa. Seuraava esimerkki osoittaa tämän asteikon käytön erikoishahmojen välttämiseksi.

Selkänoja-merkkiä voidaan käyttää poistamaan kaikki erityiset merkitykset seuraavasta merkistä, mutta hämmentävästi sitä voidaan käyttää myös osoittamaan erikoiskäyttäytyminen kaksoislainatuissa merkkijonoissa. Suurin osa näistä erityisistä käyttäytymisistä liittyy merkkien ja tavujonojen lisäämiseen, joita ei voida kirjoittaa tai edustaa visuaalisesti. Kaikki merkkijonot eivät ole merkkijonoja tai ne voivat sisältää päätelaitteelle, ei käyttäjälle, tarkoitettuja ohjausjaksoja. Ruby antaa sinulle mahdollisuuden lisätä tämän tyyppisiä merkkijonoja käyttämällä alaviivaa palaavaa merkkiä.

  • \ n - uusi rivi. puts menetelmä tekee tämän automaattisesti, mutta jos haluat lisätä yhden merkkijonon keskelle tai merkkijono on tarkoitettu jollekin muulle kuin puts menetelmä, voit käyttää tätä lisätäksesi uuden rivin merkkijonoon.
  • \ t - välilehden merkki. Välilehden merkki siirtää osoittimen (useimmissa päätelaitteissa) 8: n kerrannaiseksi, joten tämä on erittäin hyödyllinen taulukkotietojen näyttämisessä. Tätä varten on kuitenkin parempia tapoja, ja välilehden merkin käyttämistä pidetään hiukan arkaaisena tai pirteänä.
  • \ nnn - Asteikko, jota seuraa 3 numeroa, tarkoittaa ASCII-merkkiä, jota edustaa 3 oktaalinumeroa. Miksi oktaali? Lähinnä historiallisista syistä.
  • \ xnn - alaviiva, x ja 2 heksadesimaalia. Sama kuin oktaaliversio, vain kuusinumeroisilla numeroilla.

Et todennäköisesti koskaan käytä kaikkia näitä, mutta tiedät, että niitä on olemassa. Ja muista myös, että he toimivat vain kaksoislainatuilla kielillä.

Seuraavalla sivulla keskustellaan monirivisistä merkkijonoista ja vaihtoehtoisesta syntaksista merkkijonolle.

Moniriviset jouset

Useimmat kielet eivät salli monirivisiä merkkijono-kirjaimia, mutta Ruby ei. Merkkijonoja ei tarvitse lopettaa ja lisätä lisää jousia seuraavalle riville. Ruby käsittelee moniriviset merkkijonot kirjaimilla hienosti oletusarvoisesti syntaksi.

Vaihtoehtoinen syntaksi

Kuten useimmissa muissa kirjaimissa, Ruby tarjoaa vaihtoehtoisen syntaksin merkkijonolle. Jos esimerkiksi käytät paljon lainausmerkkejä kirjaimissa, saatat käyttää tätä syntaksia. Kun käytät tätä syntakkia, on kysymys tyylistä, niitä ei yleensä tarvita jousille.

Jos haluat käyttää vaihtoehtoista syntaksia, käytä seuraavaa sekvenssiä yhden lainaaman merkkijonon kohdalla % q {…}. Käytä samoin seuraavaa syntaksia kaksoismerkittyihin merkkijonoihin % Q {…}. Tämä vaihtoehtoinen syntaksi noudattaa kaikkia samoja sääntöjä kuin heidän "normaalit" serkkunsa. Huomaa myös, että voit käyttää minkä tahansa haluamiasi merkkejä henkselien sijaan. Jos käytät ahdin, hakasulke, kulmasulke tai sulu, silloin vastaava merkki loppuu kirjaimella. Jos et halua käyttää vastaavia merkkejä, voit käyttää mitä tahansa muuta symbolia (mitä tahansa kuin kirjainta tai numeroa). Kirjain suljetaan toisella samalla symbolilla. Seuraava esimerkki näyttää useita tapoja käyttää tätä syntaksia.

Vaihtoehtoinen syntaksi toimii myös monirivisellä merkkijonolla.

instagram story viewer