Lagring av variabler innenfor variabler er en vanlig ting i Rubin og blir ofte referert til som en "data struktur. "Det er mange varianter av datastrukturer, den mest enkle er matrisen.
Programmer må ofte administrere samlinger av variabler. For eksempel må et program som administrerer kalenderen din ha en liste over ukedagene. Hver dag må lagres i en variabel, og en liste over dem kan lagres sammen i en matrisevariabel. Gjennom den ene matrisevariabelen kan du få tilgang til hver dag.
Opprette tomme matriser
Du kan opprette en tom matrise ved å opprette et nytt Array-objekt og lagre det i en variabel. Denne matrisen vil være tom; du må fylle den med andre variabler for å bruke den. Dette er en vanlig måte å lage variabler på hvis du skulle lese en liste over ting fra tastaturet eller fra en fil.
I det følgende eksempelprogram opprettes en tom matrise ved hjelp av array-kommandoen og tildelingsoperatøren. Tre strenger (bestilte sekvenser med tegn) leses fra tastaturet og "dyttes" eller legges til slutten av matrisen.
#! / usr / bin / env ruby
matrise = Array.new
3. ganger gjør det
str = gets.chomp
array.push str
slutt
Bruk en Array Literal til å lagre kjent informasjon
En annen bruk av matriser er å lagre en liste over ting du allerede vet når du skriver programmet, for eksempel ukens dager. Hvis du vil lagre ukedagene i en matrise, kan du opprette en tom matrise og legge dem en etter en til matrisen som i forrige eksempel, men det er en enklere måte. Du kan bruke en matrise bokstavelig.
I programmering er en "bokstavelig" en type variabel som er innebygd i selve språket og har en spesiell syntaks for å lage det. For eksempel, 3 er en numerisk bokstavelig og "Rubin" er en streng bokstavelig. En matrise bokstavelig er en liste over variabler innelukket i firkantede parenteser og atskilt med komma, som [ 1, 2, 3 ]. Merk at alle typer variabler kan lagres i en matrise, inkludert variabler av forskjellige typer i samme matrise.
Følgende eksempelprogram lager en gruppe som inneholder ukedagene og skriver dem ut. En rekke bokstavelige brukes, og Hver loop brukes til å skrive dem ut. Noter det Hver er ikke innebygd i Ruby-språket, det er snarere en funksjon av matrixvariabelen.
#! / usr / bin / env ruby
dager = ["mandag",
"Tirsdag",
"Onsdag",
"Torsdag",
"Fredag",
"Lørdag",
"Søndag"
]
dager.ter gjør | d |
setter d
slutt
Bruk indeksoperatøren for å få tilgang til individuelle variabler
Utover enkel looping over en matrise - undersøke hver enkelt variabel i rekkefølge - kan du også få tilgang til individuelle variabler fra en matrise ved hjelp av indeksoperatøren. Indeksoperatøren vil ta et tall og hente en variabel fra matrisen som har plassering i matrisen samsvarer med det tallet. Indeksnumre starter på null, så den første variabelen i en matrise har en indeks på null.
Så for eksempel å hente den første variabelen fra en matrise du kan bruke rekke [0], og for å hente det andre du kan bruke matrise [1]. I det følgende eksemplet lagres en liste over navn i en matrise og hentes og skrives ut ved hjelp av indeksoperatøren. Indeksoperatøren kan også kombineres med tildelingsoperatøren for å endre verdien på en variabel i en matrise.
#! / usr / bin / env ruby
names = ["Bob", "Jim",
"Joe", "Susan"]
setter navn [0] # Bob
setter navn [2] # Joe
# Bytt Jim til Billy
names [1] = "Billy"