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.
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.
Dyma rai o'r dulliau mwyaf defnyddiol yn Enumerable:
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
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]
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]
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]
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
Yn ogystal â'r dulliau sylfaenol, mae yna hefyd rai dulliau uwch sy'n cynnig mwy o swyddogaethau:
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
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
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
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
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]}
Mae Enumerable hefyd yn gweithio'n dda gyda hashes. Dyma rai dulliau defnyddiol ar gyfer hashes:
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
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
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}
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!
© 2024 RailsInsights. All rights reserved.