Skriv ut rubin

Skriv ut rubin
En matrise er en samling av en bestilt liste over elementer kjent som elementer. Arrays er viktige byggesteiner i programmering. De lar oss lagre flere relaterte verdier i en enkelt variabel, noe som gjør koden enkel å lese.

Elementer i en matrise kan være av noe som.

Denne forseggjorte opplæringen vil hjelpe deg å forstå hvordan du jobber med Ruby -matriser fra det grunnleggende til matriseoperasjoner.

Det grunnleggende

Ta en eksempelkode under butikkens informasjon om brukere og deres faktureringsinformasjon.

user1_card_number = "4509 4285 4006 0689"
user2_card_number = "4922 0805 2092 4480"
user3_card_number = "4947 2643 4488 8995"

Eksemplet over lagrer kredittkortinformasjon i individuelle variabler. Hvis vi har mer enn 100 brukere, blir koden veldig vanskelig å lese og repeterende, og det er der matriser spiller inn.

For å lage en matrise i Ruby, gir vi den et navn og legger til elementene i et par firkantede parenteser atskilt med komma.

Følgende er et eksempel:

card_info = [
"4509 4285 4006 0689",
"4922 0805 2092 4480",
"4947 2643 4488 8995"
]

Koden er mer lesbar og enkel å vedlikeholde, da vi bare har en enkelt variabel å administrere.

Skriving av matriser

For å skrive ut en matrise, kan du bruke PUTS -metoden etterfulgt av navnet på matrisvariabelen.

For eksempel:

card_info = [
"4509 4285 4006 0689",
"4922 0805 2092 4480",
"4947 2643 4488 8995"
]
setter card_info

Når vi har kjørt programmet ovenfor, skal det skrive ut elementene som er lagret i matrisen:

$ Ruby -matriser.RB
4509 4285 4006 0689
4922 0805 2092 4480
4947 2643 4488 8995

Få tilgang til individuelle elementer

Vi har tilgang til hvert element i en matrise ved å bruke indeksen. En indeks er som elementets plassering i hele matrisen.

I Ruby starter indeksering i posisjon 0. Det betyr at det første elementet i en matrise er på indeks 0.

For å få tilgang til varen på en spesifikk indeks, kaller vi navnet på matrisvariabelen etterfulgt av elementets indeks i et par firkantede parenteser som:

card_info = [
"4509 4285 4006 0689",
"4922 0805 2092 4480",
"4947 2643 4488 8995"
]
setter card_info [1]

I dette eksemplet får vi tilgang til det andre elementet i matrisen som:

$ Ruby -matriser.RB
4922 0805 2092 4480

Hvis du får tilgang til en indeks utenfor rekkevidden av matriseelementene i Ruby, vil du få null som returverdi.

For eksempel, i programmet nedenfor, er den maksimale indeksen 2. Hvis vi får tilgang til en indeks høyere enn det, bør vi få null som:

card_info = [
"4509 4285 4006 0689",
"4922 0805 2092 4480",
"4947 2643 4488 8995"
]
card_info [5]
=> nil

Multitype-matrise

Som vi nevnte i begynnelsen av opplæringen, kan matriser inneholde flere datatyper.

Følgende er for eksempel en matrise med flere elementtyper.

PERSONLY_INFO = [
"Alyssa King",
"4947 2643 4488 8995",
[
"221b Baker Street",
877
],
32
]

Eksemplet over viser en matrise med flere datatyper, inkludert en annen matrise.

Anta at vi ønsker å få tilgang til elementer i et nestet utvalg, som vist ovenfor. I et slikt tilfelle må vi først få tilgang til den nestede matrisen ved å bruke indeksen som:

PERSONLY_INFO [2]

Når vi har det nestede matrisen, kan vi begynne å få tilgang til elementene ved å bruke deres tilsvarende indekser.

MERK: Indekser i en nestet matrise start på 0.

setter personal_info [2] [0]

Eksempelkoden ovenfor vil skrive ut verdien som er lagret i den første indeksen for den nestede matrisen.

Få matrise lengde og elementindeks

Når du jobber med et stort utvalg, kan det være utfordrende å vite hvor mange elementer som er i det. Du kan bruke lengdemetoden for å få antall elementer i matrisen.

setter personal_info.lengde
=> 4

Lengde -metoden vil returnere det faktiske antall elementer i matrisen. Husk imidlertid indeksen over matriser starter 0. Derfor er indeksen for det siste elementet i en matrise:

Array.Lengde - 1

La oss si at du kjenner elementet som er lagret i matrisen, men ikke indeksen. For å bestemme indeksen, kan du bruke indeksmetoden som:

setter personal_info.Indeks ("Alyssa King")
=> 0

Metoden returnerer indeksen for elementet hvis den blir funnet.

Endre matriser

Nå som vi har laget matrisen, hvordan legger vi til eller fjerner elementer i matrisen?

La oss ta vår første kortoppstilling:

card_info = [
"4509 4285 4006 0689",
"4922 0805 2092 4480",
"4947 2643 4488 8995"
]

Legge til elementer

Det er flere måter å legge til elementer i en matrise.

# 1 - Bruke neste indeks

Den første tildeler følgende indeks en verdi. For eksempel, i Cards_info -matrisen, er følgende indeks 3, vi kan sette en verdi som:

card_info [3] = "4539 8298 7119 8259"

Ovennevnte syntaks vil legge et nytt element til de eksisterende matriseelementene som:

setter card_info
=> ["4509 4285 4006 0689", "4922 0805 2092 4480", "4947 2643 4488 8995"]

#2 - Bruke Push () -metode

Det kan være vanskelig å spore følgende indeks i en matrise, og tilordne feil indeks vil overskrive det eksisterende elementet.

For å unngå et slikt scenario, kan vi bruke push -metoden.

card_info.Push ("4532 7335 0011 9834")

Push -metoden er gunstig, da den automatisk legger elementet til matrisen, og eliminerer behovet for å bekymre deg for indeksen.

Du kan også bruke venstre skiftnotasjon for å legge til et element i matrisen. Denne metoden fungerer på samme måte som push -metoden.

card_info << "4916 4324 7803 6973"

#3 - Bruke unshift () -metode

Push -metoden legger til elementer på slutten av matrisen. For å legge til et element i begynnelsen av matrisen, kan vi bruke unshift () -metoden.

card_info.Unshift ("4645 8814 2354 1982")
=> ["4645 8814 2354 1982", "4509 4285 4006 0689", "4922 0805 2092 4480", "4947 2643 4488 8995"]]]

Du vil merke at det nye elementet er i begynnelsen av matrisen.

Fjerne elementer

Ruby gir tre måter å fjerne elementer i en matrise.

#1 - Bruke POP () -metoden

POP -metoden er tett lik push -metoden, bortsett fra at den fjerner det siste elementet i matrisen.

card_info.pop
skriv ut kort_info
["4509 4285 4006 0689", "4922 0805 2092 4480"]

#2 - Bruke Delete () -metoden

Slettmetoden finner alle forekomster av elementet du spesifiserer og fjerner dem fra matrisen.

La oss ta en annen rekke som inneholder duplikater som:

db = [
"Mysql",
"PostgreSql",
"Fauna DB",
"Neo4j",
"Dynamo DB",
"Postrgesql",
"Mysql",
"Mongodb"
]

I eksempelet har vi to dupliserte elementer. Hvis vi bruker slettemetoden og spesifiserer "MySQL" -elementet, vil metoden fjerne alle elementene som samsvarer med den verdien.

db.slett ("mysql")
Skriv ut DB

Den resulterende matrisen er under:

["PostgreSql", "Fauna DB", "Neo4j", "Dynamo DB", "PostRgesql", "MongoDB"]

#3 - Bruke metoden Shift ()

Som navnet antyder, ligner skiftmetoden. Imidlertid fjerner det det første elementet i matrisen.

db = [
"Mysql",
"PostgreSql",
"Fauna DB",
"Neo4j",
"Dynamo DB",
"Postrgesql",
"Mysql",
"Mongodb"
]
db.skifte
Skriv ut DB

Metoden vil fjerne det første elementet og returnere matrisen som:

["PostgreSql", "Fauna DB", "Neo4j", "Dynamo DB", "PostRgesql", "MySQL", "MongoDB"]

Iterere over en matrise

For å iterere hvert element i matrisen, kan vi bruke hver metode.

db.Hver do | element |
setter element
slutt

Ovennevnte metode returnerer hvert element i matrisen.

Mysql
PostgreSql
..
Mysql
Mongodb

Du kan også bruke en for loop som vist:

for element i db do
setter element
slutt

Konklusjon

Denne guiden lærte deg hvordan du jobber med Ruby Arrays, fra det grunnleggende til en mellombruker. Det er godt å merke seg at det er flere til matriser utenfor omfanget av denne guiden. Vurder dokumentasjonen for å oppdage mer.