Hashtabeller
En hashtabell liknar en array men man använder index-nycklar istället för numeriska index som i arrayer.
Som arrayer finns det många olika sätt att skapa en hashtabell på.
Du kan skapa en hashtabell med klass metoden new
>> namn = Hash.new # skapar en tom hashtabell
=> {}
För att lägga värde i hashtabellen används nyckeln som index istället för en siffra
>> namn["blogg"] = 'Haslogic'
=> "Haslogic"
>> namn
=> {"blogg"=>"Haslogic"}
Du kan också skapa en hashtabell med {}:
>> namn = {}
=> {}
För att lägga värde i hashtabellen används nyckel/värde separerade med =>:
>> namn = {"Pspråk" => "Ruby","Blogg" => "Haslogic"}
=> {"Pspråk"=>"Ruby","Blogg"=>"Haslogic"}
För att hämta data ur en hashtabell används hakparenteser med nyckel som argument:
>> ht = {"Stad"=>"Helsingborg","Psprak"=>"Ruby"}
=> {"Psprak"="Ruby","Stad"=>"Helsingborg"}
>> ht["Stad"]
=> "Helsingborg"
>> ht["Psprak"]
=> "Ruby"
Ändra ett element
>> ht = {"Blogg"=>"Vet ej","Psprak"=>"Ingen"}
=> {"Psprak"=>"Ingen", "Blogg"=>"Vet ej"}
>> ht.replace({"Blogg"=>"Haslogic","Pspråk"=>"Ruby"})
=> {"Pspråk"=>"Ruby","Blogg"=>"Haslogic"}
>> ht
=> {"Pspråk"=>"Ruby","Blogg"=>"Haslogic"}
replace ersätter innehållet av ht helt och hållet.
Metoden delete används för att ta bort ett värde ur en hashtabell.
>> ht = {"Blogg"=>"Haslogic","Psprak"=>"Ruby"}
=> {"Psprak"=>"Ruby", "Blogg"=>"Haslogic"}
>> ht.delete("Blogg")
=> "Haslogic"
>> ht
=> {"Psprak"=>"Ruby"}
>>
Symboler används ofta i hashtabeller
>> ht = {:blogg => "Haslogic",:psprak => "Ruby",:alder => 26}
=> {:blogg=>"Haslogic", :psprak=>"Ruby", :alder=>26}
>> ht[:blogg] # Hämta data ur hashtabellen
=> "Haslogic"
>> ht.delete(:alder) # ta bort värde ur hashtabellen
=> 26
>> ht
=> {:blogg=>"Haslogic",:psprak=>"Ruby"}
has_key? metoden returnerar true om den givna nyckeln finns i hashtabellen annars false:
>> ht = {:blogg => "Haslogic", :psprak => "Ruby"}
=> {:blogg=>"Haslogic", :psprak=>"Ruby"}
>> ht.has_key?(:blogg)
=> true
>> ht.has_key?(:alder)
=> false
has_value? metoden returnerar true om värdet finns i hashtabellen annars false:
>> ht = {:blogg => "Haslogic", :alder => 26}
=> {:blogg=>"Haslogic",:alder=>26}
>> ht.has_value?(26)
=> true
>> ht.has_value?("Ruby")
=> false
>> ht.has_value?("Haslogic")
=> true
En fullständig lista över Rubys Hash metoder hittar du här:
http://ruby-doc.org/core/classes/Hash.html
Skriv ny kommentar



