Ruby Range to Array

Ruby Range to Array

Et område refererer til et objekt som registrerer en spesifikk sekvens. Vi definerer områder med en bestemt start- og sluttverdi, og sprer deretter verdiene mellom start- og sluttverdiene.

Et enkelt eksempel kan være av verdier fra 10 til 100. Mellom verdien av 10 og 100, kan du ha sekvensen til å inkludere bare de jevne tallene og slikt.

Ved hjelp av denne guiden lærer vi hvordan du lager områder i Ruby, jobber med trinnmetoden og til slutt konverterer et område til en matrise.

Komme i gang med Ranges

Vi bruker den doble prikken (...) og Triple Dot (...) for å lage et utvalg i Ruby.

Double Dot -notasjonen produserer en rekke verdier, inkludert start- og sluttverdiene for området.

På den annen side vil den trepunktnotasjonen utelukke enden (høy) verdi fra verdien listen.

Tenk på eksemplet nedenfor:

(1 ... 10)
(1 ... 10)

Begge eksemplene ovenfor er gyldige Ruby -områder. Imidlertid er verdien av verdiene som nedenfor (henholdsvis).

1, 2, 3, 4, 5, 6, 7, 8, 9, 10
1, 2, 3, 4, 5, 6, 7, 8, 9

Eksempel 1

For å teste om området inkluderer en verdi, kan vi bruke forskjellige metoder som inkluderer? Ta en titt på eksemplet nedenfor:

Setter (1… 10).inkludere?(10) # => sant
Setter (1… 10).inkludere?(10) # => falsk

Eksempel 2

Verdiene fra et område er ikke betegnet som en liste. De er faktiske rekkeobjekter i rekkevidden som inneholder enumerable. Derfor kan vi utføre iterasjonsoperasjoner på et område uten å konvertere den til et matriseobjekt.

Tenk på et enkelt eksempel nedenfor:

for jeg i (1… 10)
setter i
slutt

Ved hjelp av en enkel for loop kan vi hente hvert element i området og handle på verdien.

Eksempel 3

En annen metode vi kan bruke på et område er avvisningsmetoden. Denne metoden vil fjerne alle verdiene som ikke oppfyller en spesifikk tilstand. F

Ta for eksempel et område fra 1 til 100; Vi kan avvise alle verdiene som ikke er numerisk til og med.

Nedenfor er et eksempelkode:

Setter (1… 100).Avvis | i | Jeg.til og med? != True

Ruby er så fleksibel at den lar deg gjøre mer med noen få kodelinjer.

I vårt eksempel over bruker vi innebygde rubinmetoder for å filtrere ut rekkevidden og inkluderer bare jevnlige verdier .

Nedenfor er et eksempelutgang:

2
4
6
..
98
100

Trinnmetoden i Ruby

Anta at vi ønsker å lage et område, men over et spesifikt intervall? I et slikt scenario kan vi bruke trinnmetoden. Denne metoden vil øke verdiene i området (mellom start og slutt) over en økning av den spesifiserte verdien.

La oss illustrere dette med et eksempel:

vars = (10… 100).trinn (3)
setter vars.to_a

MERK: Ignorer TO_A -metoden (diskutert senere).

Eksemplet ovenfor skal gi en utgang som ligner den som er vist nedenfor:

10
1. 3
16
..

Som du vil legge merke til, legger vi til 3 til gjeldende verdi eller skriver ut hvert tredje element fra gjeldende rekkeviddeposisjon.

Rekkevidde til matrise

#to_a

Kan du huske TO_A -metoden som er nevnt ovenfor? La oss diskutere hva det betyr og hvordan det fungerer. TO_A -metoden hjelper med å konvertere en sekvens av verdier til en matrise.

Tenk for eksempel på eksemplet nedenfor:

SEQ = (1… 10)
setter seq.to_a

Eksemplet ovenfor vil returnere verdiene fra området i et matriseformat. Tenk på det som å sløyfe over hvert element i området og legge det til en matrise. Her er en enkel illustrasjon.

arr = []
for jeg i (1… 10)
arr = arr.Push (i)
slutt
Setter ARR

Vi starter med å definere et tomt utvalg. Deretter itererer vi over varene i et område og skyver hvert element til samlingen.

Array ()

Ruby lar deg også bruke matrise () -metoden for å lage en ny matrise fra varene i et område.

Tenk på eksemplet nedenfor:

Arr = Array ((1… 10))
Setter ARR

Ja, metoden ser ut som en matrise -klasse. Imidlertid må du legge til et par parentes for å gi Ruby beskjed om at du bruker matrisemetoden og ikke klassen.

Den resulterende verdien er verdiene i et matriseformat.

Lukking

Denne guiden gir deg informasjon om hvordan du jobber med Ruby Ranges. Ved hjelp av denne guiden forstår du nå hvordan du jobber med områder og konverterer dem til en matrise.

Takk for at du leser, og følg med for flere Ruby Guides.