Ruby String Interpolation

Ruby String Interpolation
Strenginterpolering refererer til prosessen med å legge til plassholdere som refererer til andre verdier i et strengobjekt. Verdiene interpolert til en streng blir evaluert til deres tilsvarende verdier. Strenginterpolasjon kan sees på som en form for malinjeksjon.

I denne guiden vil vi diskutere hvordan du interpolerer strenger i Ruby -programmeringsspråket.

Ved hjelp av + operatør

Den enkleste måten å interpolere verdier i en bokstavelig streng er å bruke tilleggsoperatøren. Tenk på eksemplet som er vist nedenfor:

name = "Alice"
setter "hei" + navn

I eksemplet over erklærer vi en variabel som heter Name. Det holder verdien “Alice”. Ved hjelp av tilleggsoperatøren interpolerer vi den til en strengverdi.

Ruby -tolken vil hente verdien som er referert med variabelnavnet og bruke den som den faktiske verdien. Den resulterende utgangen er som vist:

$ ruby ​​interpolasjon.RB
Hei Alice

Tilleggsoperatøren inneholder en ulempe når du interpolerer variabler i en streng. Det fungerer bare med strengsobjekter.

Ta eksemplet nedenfor:

Alder = 10
setter "Jeg er" + alder + "år gammel"

Hvis du prøver å utføre en slik operasjon, vil Ruby returnere en typeerror

'+': Ingen implisitt konvertering av nil inn i Streng (typeerror)

En måte å løse et slikt problem er å konvertere variabelen til en streng ved hjelp av TO_S -metoden.

For eksempel:

Alder = 10
setter ("Jeg er" + alder.til_s + "år gammel")

Nå kan vi injisere heltallsvariabelen i strengen ved å støpe den som en streng.

Bruker << Operator

Venstre skiftoperatør fungerer på samme måte som tilleggsoperatøren. Den injiserer den passerte variabelen i en streng bokstavelig.

Eksempel:

lang = "Ruby"
setter lang << " is an fun!"

I likhet med tilleggsoperatøren, må du konvertere variabelen til en streng for å forhindre typeerror.

Ved hjelp av #

De to metodene vi diskuterte ovenfor har en enkelt ulempe; Det blir komplisert å utføre et uttrykk i en streng bokstavelig.

Ta en titt på eksemplet nedenfor:

Radius = 7.43
setter "området for radiusens cirlcle" + radius.til_s + "er" + radius * radius * 3.141 + "CM2"

Ovennevnte operasjon er ikke mulig ved bruk av metodene vi diskuterte ovenfor.

For å løse dette, kan vi bruke ekspresjonssubstitusjonsoperatøren i Ruby:

Syntaksen er som:

#variabel

Vi legger variabelen eller uttrykket inne i paret krøllete seler. Ruby vil evaluere uttrykket og interpolere til strengen.

Tenk på det forrige eksemplet ved å bruke interpolasjonsoperatøren.

Radius = 7.43
setter "området til cirlcle of radius #radius er #radius * radius * 3.141 cm2 "

Det er mye bedre. Ved å bruke ovennevnte notasjon kan vi injisere en enkelt variabel og gyldig rubinuttrykk i en streng.

Nedenfor er den resulterende utgangen:

$ Ruby Substring.RB
Området til Cirlcle of Radius 7.43 er 173.3985909 CM2

I dette tilfellet trenger vi ikke å utføre uttrykket, konvertere det til en streng og deretter interpolere det til strengen.

Ved hjelp av denne metoden vil Ruby ta seg av alt.

Konklusjon

Denne guiden har illustrert hvordan man jobber med streng interpolasjon i rubinspråket ved å bruke funksjoner som tilleggsoperatøren, venstre skift og ekspresjonssubstitusjonsoperatøren.