Hver gruppe og hasj i Ruby er et objekt, og hvert objekt av disse typene har et sett med innebygde metoder. Programmerere som er nye for Ruby, kan lære om hvordan de bruker Hver metoden med en matrise og en hasj ved å følge de enkle eksemplene som presenteres her.
Bruke hver metode med et array-objekt i Ruby
Lag først et array-objekt ved å tilordne matrisen til "stooges."
>> stooges = ['Larry', 'Curly', 'Moe']
Deretter kan du ringe til hver metode og opprette en liten blokk med kode for å behandle resultatene.
>> stooges.each {| stooge | skriv ut stooge + "\ n"}
Denne koden gir følgende utdata:
Larry
Curly
Moe
Hver metode tar to argumenter—Et element og en blokk. Elementet som er inne i rørene, ligner en plassholder. Uansett hva du legger i rørene, brukes i blokken for å representere hvert element i matrisen etter tur. Blokken er kodelinjen som blir utført på hvert av matriseelementene og får elementet til å behandle.
Du kan enkelt utvide kodeblokken til flere linjer ved å bruke gjøre å definere en større blokk:
>> stuff.each gjør | ting |
skriv ut ting
trykk "\ n"
slutt
Dette er det samme som det første eksemplet, bortsett fra at blokken er definert som alt etter elementet (i rør) og før uttalelsen.
Bruke hver metode med et Hash-objekt
Akkurat som matriseobjekt, den hasjobjekt har en hver metode som kan brukes til å bruke en blokkkode på hvert element i hasjen. Lag først et enkelt hasjobjekt som inneholder litt kontaktinformasjon:
>> contact_info = {'name' => 'Bob', 'phone' => '111-111-1111'}
Deretter kan du ringe til hver metode og opprette en enkelt linjekode for å behandle og skrive ut resultatene.
>> contact_info.each {| nøkkel, verdi | print key + '=' + value + "\ n"}
Dette gir følgende utdata:
navn = Bob
telefon = 111-111-1111
Dette fungerer nøyaktig som hver metode for et array-objekt med en avgjørende forskjell. For en hasj lager du to elementer - ett for hash nøkkel og en for verdien. I likhet med matrisen er disse elementene plassholdere som brukes til å sende hvert nøkkel / verdipar til kodeblokken som Rubin løkker gjennom hasj.
Du kan enkelt utvide kodeblokken til flere linjer ved å bruke do for å definere en større blokk:
>> contact_info.each do | nøkkel, verdi |
print print key + '=' + verdi
trykk "\ n"
slutt
Dette er det samme som det første hasjeksemplet, bortsett fra at blokken er definert som alt etter elementene (i rør) og før sluttuttalelsen.