Rails Insights

Meistrio Hashiau Ruby

Mae Ruby yn iaith raglennu sy'n cynnig llawer o nodweddion pwerus, ac un o'r rhai mwyaf defnyddiol yw'r hashiau. Mae hashiau yn strwythurau data sy'n caniatáu i chi storio parau o allweddi a gwerthoedd, gan ei gwneud yn hawdd i chi drefnu a chyrchu data. Yn yr erthygl hon, byddwn yn archwilio rhai o'r dulliau hash mwyaf defnyddiol yn Ruby, gan roi enghreifftiau a chynigion ar sut i'w defnyddio.

Beth yw Hashiau?

Mae hashiau yn strwythurau data sy'n cadw parau o allweddi a gwerthoedd. Mae'r allweddi yn unigryw, sy'n golygu na allwch gael yr un allwedd yn fwy nag unwaith. Mae'r gwerthoedd yn gallu bod yn unrhyw fath o ddata, gan gynnwys rhifau, llinynnau, a hyd yn oed hashiau eraill. Mae hashiau yn ddefnyddiol pan fyddwch am storio data sy'n gysylltiedig â'i gilydd.

Creu Hash

Gallwch greu hash yn Ruby trwy ddefnyddio curly braces `{}` neu trwy ddefnyddio'r dull `Hash.new`. Dyma enghreifftiau o'r ddau ddull:

# Dull 1: Defnyddio curly braces
my_hash = { 'enw' => 'Tom', 'oes' => 30, 'dinas' => 'Caerdydd' }

# Dull 2: Defnyddio Hash.new
my_hash = Hash.new
my_hash['enw'] = 'Tom'
my_hash['oes'] = 30
my_hash['dinas'] = 'Caerdydd'

Dulliau Hash Sylfaenol

Mae llawer o ddulliau defnyddiol ar gael ar gyfer hashiau yn Ruby. Dyma rai o'r rhai mwyaf cyffredin:

  • fetch: Mae'r dull hwn yn caniatáu i chi gael gwerth yn seiliedig ar allwedd. Os nad yw'r allwedd yn bodoli, gallwch benodi gwerth rhagosodedig.
  • keys: Mae'r dull hwn yn dychwelyd rhestr o'r holl allweddi yn y hash.
  • values: Mae'r dull hwn yn dychwelyd rhestr o'r holl werthoedd yn y hash.
  • delete: Mae'r dull hwn yn dileu allwedd a'i werth cysylltiedig o'r hash.
  • each: Mae'r dull hwn yn caniatáu i chi fynd drwodd i bob par o allwedd a gwerth yn y hash.

Defnyddio Dulliau Hash

Dyma enghreifftiau o sut i ddefnyddio'r dulliau uchod:

# Creu hash
my_hash = { 'enw' => 'Tom', 'oes' => 30, 'dinas' => 'Caerdydd' }

# Defnyddio fetch
enw = my_hash.fetch('enw', 'Nid yw ar gael')
puts enw  # Tom

# Dychwelyd allweddi
allweddi = my_hash.keys
puts allweddi.inspect  # ["enw", "oes", "dinas"]

# Dychwelyd gwerthoedd
gwerthoedd = my_hash.values
puts gwerthoedd.inspect  # ["Tom", 30, "Caerdydd"]

# Dileu allwedd
my_hash.delete('oes')
puts my_hash.inspect  # {"enw"=>"Tom", "dinas"=>"Caerdydd"}

# Defnyddio each
my_hash.each do |key, value|
  puts "#{key}: #{value}"
end

Hashiau a Chyfuniadau

Gallwch hefyd ddefnyddio hashiau mewn cyfuniadau gyda dulliau eraill. Dyma rai enghreifftiau:

Mapio Hashiau

Gallwch ddefnyddio'r dull map i greu hash newydd o hash presennol:

my_hash = { 'enw' => 'Tom', 'oes' => 30, 'dinas' => 'Caerdydd' }

new_hash = my_hash.map { |key, value| [key.upcase, value] }.to_h
puts new_hash.inspect  # {"ENW"=>"Tom", "OES"=>30, "DINAS"=>"Caerdydd"}

Ffiltru Hashiau

Gallwch ddefnyddio'r dull select i ffilterio hashiau yn seiliedig ar amodau penodol:

my_hash = { 'enw' => 'Tom', 'oes' => 30, 'dinas' => 'Caerdydd' }

filtered_hash = my_hash.select { |key, value| value.is_a?(Integer) }
puts filtered_hash.inspect  # {"oes"=>30}

Hashiau NESTED

Gall hashiau hefyd gynnwys hashiau eraill, a elwir yn hashiau "nested". Mae hyn yn caniatáu i chi greu strwythurau data mwy cymhleth. Dyma enghraifft:

nested_hash = {
  'person' => {
    'enw' => 'Tom',
    'oes' => 30
  },
  'dinas' => 'Caerdydd'
}

puts nested_hash['person']['enw']  # Tom

Defnyddio Dulliau ar Hashiau NESTED

Gallwch ddefnyddio'r dulliau a drafodwyd yn flaenorol ar hashiau nested hefyd:

# Dychwelyd allweddi
allweddi = nested_hash['person'].keys
puts allweddi.inspect  # ["enw", "oes"]

# Dychwelyd gwerthoedd
gwerthoedd = nested_hash['person'].values
puts gwerthoedd.inspect  # ["Tom", 30]

Casgliad

Mae hashiau yn Ruby yn offeryn pwerus ar gyfer storio a rheoli data. Gyda'r dulliau a drafodwyd yn yr erthygl hon, gallwch ddechrau meistrio'r dulliau hash a'u defnyddio i greu cymwysiadau mwy cymhleth. Peidiwch ag anghofio ymarfer gyda'r enghreifftiau a'r dulliau a drafodwyd, gan y bydd hyn yn eich helpu i ddod yn fwy cyfarwydd â'r iaith Ruby a'i hashiau.

Mae llawer mwy i'w ddysgu am Ruby a'i hashiau, felly peidiwch ag oedi cyn archwilio a phrofi'r dulliau hyn yn eich prosiectau eich hun. Mae'r gymuned Ruby yn llawn o adnoddau a chefnogaeth, felly peidiwch ag oedi cyn gofyn am help os ydych chi'n ei chael hi'n anodd. Pob lwc ar eich taith i feistrio Ruby!

Published: August 13, 2024

© 2024 RailsInsights. All rights reserved.