Rails Insights

Methodau Enumerable y Dylai Pob Datblygwr Ruby Eu Gwybod

Mae Ruby yn iaith raglennu sy'n adnabyddus am ei symlrwydd a'i harddwch. Un o'r nodweddion mwyaf pwerus o Ruby yw ei ddirprwyfeydd, yn enwedig y dulliau Enumerable. Mae'r dulliau hyn yn caniatáu i ddatblygwyr weithio gyda chasgliadau fel arrays a hashes yn effeithlon ac yn gyfleus. Yn yr erthygl hon, byddwn yn archwilio rhai o'r dulliau Enumerable mwyaf defnyddiol y dylai pob datblygwr Ruby eu gwybod.

Beth yw Enumerable?

Mae Enumerable yn fodiwl yn Ruby sy'n darparu dulliau ar gyfer gweithio gyda chasgliadau. Mae'n cynnwys dulliau sy'n caniatáu i chi wneud gweithrediadau fel chwilio, ffilterio, a throsglwyddo data. Mae'r modiwl hwn yn cael ei gynnwys yn awtomatig yn y dosbarthiadau Array a Hash, sy'n golygu y gall unrhyw ddirprwyfeydd sy'n defnyddio Enumerable fanteisio ar y dulliau hyn.

Dulliau Sylfaenol Enumerable

Dyma rai o'r dulliau mwyaf defnyddiol yn Enumerable:

1. each

Mae'r dull each yn caniatáu i chi fynd drwodd i bob elfen mewn casgliad. Mae'n ddefnyddiol ar gyfer gweithredu cod ar bob elfen.

fruits = ["afal", "banana", "grawnffrwyth"]
fruits.each do |fruit|
  puts "Dwi'n hoffi #{fruit}!"
end

2. map

Mae'r dull map yn creu a dychwelyd array newydd sy'n cynnwys y canlyniadau o weithrediadau a gynhelir ar bob elfen yn y casgliad gwreiddiol.

numbers = [1, 2, 3, 4]
squared_numbers = numbers.map { |number| number ** 2 }
puts squared_numbers.inspect
# => [1, 4, 9, 16]

3. select

Mae'r dull select yn dychwelyd elfenau sy'n bodloni'r amod a gynhelir yn y bloc. Mae'n ddefnyddiol ar gyfer ffilterio data.

even_numbers = numbers.select { |number| number.even? }
puts even_numbers.inspect
# => [2, 4]

4. reject

Mae'r dull reject yn gwneud y gwrthwyneb i select. Mae'n dychwelyd elfenau nad ydynt yn bodloni'r amod a gynhelir yn y bloc.

odd_numbers = numbers.reject { |number| number.even? }
puts odd_numbers.inspect
# => [1, 3]

5. reduce

Mae'r dull reduce (neu inject) yn caniatáu i chi gyfuno elfenau i greu un gwerth. Mae'n ddefnyddiol ar gyfer crynhoi data.

sum = numbers.reduce(0) { |accumulator, number| accumulator + number }
puts sum
# => 10

Dulliau Uwch Enumerable

Yn ogystal â'r dulliau sylfaenol, mae yna hefyd rai dulliau uwch sy'n cynnig mwy o swyddogaethau:

6. all

Mae'r dull all yn gwirio a yw pob elfen yn bodloni'r amod a gynhelir yn y bloc. Mae'n dychwelyd true os yw pob elfen yn bodloni'r amod, neu false fel arall.

all_even = numbers.all? { |number| number.even? }
puts all_even
# => false

7. any

Mae'r dull any yn gwirio a yw unrhyw elfen yn bodloni'r amod a gynhelir yn y bloc. Mae'n dychwelyd true os oes unrhyw elfen yn bodloni'r amod, neu false fel arall.

any_even = numbers.any? { |number| number.even? }
puts any_even
# => true

8. none

Mae'r dull none yn gwirio a yw dim ond elfenau yn bodloni'r amod a gynhelir yn y bloc. Mae'n dychwelyd true os nad oes unrhyw elfen yn bodloni'r amod, neu false fel arall.

none_even = numbers.none? { |number| number > 4 }
puts none_even
# => true

9. find

Mae'r dull find yn dychwelyd y cyntaf elfen sy'n bodloni'r amod a gynhelir yn y bloc. Os nad oes unrhyw elfen yn bodloni'r amod, bydd yn dychwelyd nil.

first_even = numbers.find { |number| number.even? }
puts first_even
# => 2

10. group_by

Mae'r dull group_by yn grwpio elfenau yn seiliedig ar yr amod a gynhelir yn y bloc. Mae'n dychwelyd hash lle mae'r allweddi yn y grwpiau a'r gwerthoedd yn y grwpiau o elfenau.

grouped_numbers = numbers.group_by { |number| number.even? }
puts grouped_numbers.inspect
# => {false=>[1, 3], true=>[2, 4]}

Defnyddio Enumerable gyda Hashes

Mae Enumerable hefyd yn gweithio'n dda gyda hashes. Dyma rai dulliau defnyddiol ar gyfer hashes:

11. each_key

Mae'r dull each_key yn caniatáu i chi fynd drwodd i bob allwedd yn y hash.

person = { name: "John", age: 30 }
person.each_key do |key|
  puts "Allwedd: #{key}"
end

12. each_value

Mae'r dull each_value yn caniatáu i chi fynd drwodd i bob gwerth yn y hash.

person.each_value do |value|
  puts "Gwerth: #{value}"
end

13. select

Gallwch ddefnyddio select gyda hashes hefyd i ffilterio yn seiliedig ar yr allwedd neu'r gwerth.

adults = person.select { |key, value| key == :age && value >= 18 }
puts adults.inspect
# => {:age=>30}

Casgliad

Mae dulliau Enumerable yn cynnig dulliau pwerus a chyfleus ar gyfer gweithio gyda chasgliadau yn Ruby. Mae'r dulliau hyn yn caniatáu i chi wneud gweithrediadau cymhleth yn syml ac yn effeithlon. Mae'n bwysig i bob datblygwr Ruby ddod yn gyfarwydd â'r dulliau hyn i wella eu sgiliau a'u cynhyrchiant.

Wrth i chi ddatblygu eich sgiliau Ruby, peidiwch ag anghofio archwilio'r dulliau Enumerable a'u defnyddio yn eich prosiectau. Mae'r dulliau hyn yn gallu gwneud eich bywyd fel datblygwr yn llawer haws a mwy cyffrous!

Published: August 13, 2024

© 2024 RailsInsights. All rights reserved.