Betydning av dobbelt spørsmålstegn i Ruby

Betydning av dobbelt spørsmålstegn i Ruby
Når du jobber med rubinkodebaser, kan du møte en syntaks som bruker dobbelt spørsmålstegn. I denne opplæringen vil vi oppsummere hva disse operatørene betyr og hvordan de fungerer i sammenheng med bruken.

Rubin? Operatør

I Ruby, den ? Operatør er en ternær operatør. Det brukes som en korthet for en if… ellers uttalelse. Syntaksen er som følger:

betingelse ? action_if_true: action_if_false

I dette tilfellet blir tilstanden evaluert som enten sann eller falsk. Hvis tilstanden er sann, blir uttrykket før: utføres. Ellers blir uttrykket etter: utføres.

Vi kan demonstrere dette ved å bruke et eksempel som vist nedenfor:

x = 5
setter x> 0 ? "positiv negativ"

I dette tilfellet vil koden teste om verdien av x er større enn 0. Hvis det er sant, vil blokken skrive ut positivt. Ellers vil den skrive ut negativt.

IRB (hoved): 002: 0> setter x> 0 ? "positiv negativ"
positivt
=> nil

Det samme tilfellet gjelder hvis verdien er negativ som vist:

IRB (hoved): 003: 0> x = -5
IRB (hoved): 004: 0> setter x> 0 ? "positiv negativ"
negativ
=> nil

Du kan også kjede flere forhold ved å bruke ? Operatør som vist i eksemplet nedenfor:

x = 5
setter x> 0 ? "positivt": x == 0 ? "null": "negativ"

I dette tilfellet vil spørringen teste verdien av x mot tre forhold. Hvis verdien er større enn 0, vil koden skrive ut positiv. Hvis verdien er lik null, vil koden skrive ut strengen null. Og til slutt, hvis ingen av disse forholdene er sanne, vil koden skrive ut “negativ.”

Vi kan også bruke det ternære ? operatør i en metode og variabelnavn. Dette referert til som "sikker navigasjonsoperatør", eller & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &Ksettelt med. Operatør og den brukes til å sjekke om mottakeren av metodesamtalen ikke er null før du ringer til metoden.

x = "hei"
x &.Oppdase # Hei
y = nil
y og.oppcase # nil

Vi kan også bruke den ternære operatøren til å tildele verdi som demonstrert nedenfor:

x = 5
y = x> 0 ? 1: -1

I dette tilfellet vil Y ha verdien av 1.

Konklusjon

Dette dekket det grunnleggende om å samarbeide med Ruby Ternary -operatøren for å utføre forskjellige operasjoner. Det er verdt å merke seg at den ternære operatøren har lavere forrang enn de fleste andre operatører i Ruby. Derfor kan det hende du må bruke parentes for å sikre at uttrykkene blir evaluert i den tiltenkte rekkefølgen.

Selv om den ternære operatøren er egnet for raskt å sette opp en betinget uttalelse, gir den ikke god kodeopplesbarhet. Derfor anbefaler vi å bruke den tradisjonelle hvis… ellers blokkerer der det er nødvendig.