雜湊 Hash
名詞解釋
Hash是由Key、Value所組成的資料,設計者只要根據Key值就可以取得相對應的資料唷!
雖然中文翻譯很奇怪,不過大家都是這麼稱呼的,實務上使用都是講hash。
如何建立hash?
- 使用hash類別,new一個給他。
1
vegan = Hash.new
- 使用大括號
1
2
3
4
5vegan = {}
# EX:
vegan = { name: 'Lisa', age:8 }
p vegan -> { :name => "Lisa", :age => 8 }
ruby的hash有多種寫法?
舊式:箭頭式。
1
2
3
4
5# 字串寫法
vegan = { 'name' => "Lisa", 'age' => 8 }
# 符號寫法
vegan = { :name => "Lisa", :age => 8 }但之前的章節說過使用「字串」的效能沒有「符號」好,所以這邊使用「符號」為主。
新式:Ruby 1.9版本之後的新式寫法,設計為現代、較類似JSON風格的寫法,給設計者方便的一種寫法。
1
vegan = { name: 'Lisa', age:8 }
*該選擇哪一個版本的寫法呢?
Ans:事實上使用舊式或新式寫法都可以,文件格式統一即可。
如何取出key或value的值?
因為hash是key跟value的組合,所以可以單獨使用方法來印出。
1 | p vegan.keys # 印出 [:name, :age] |
印出來的是舊式的寫法,因為本質上是舊式的。
*索引號碼
若是之前學過別的程式語言會不習慣ruby的方式,在ruby要用對的key才能拿到value。
例如想要拿到kk
1 | p vegan["name"] # 別的程式語言,印出 nil |
修改key的值怎麼做
1 | vegan = { name: 'Lisa', age:8 } |
使用each,將資料一個個印出來。
1 | vegan.each do |element| |
多一個變數的寫法
1 | vegan.each do |key, value| |
更多的使用方法依樣可以參考手冊唷!
Hash 官方手冊
回家作業
請依官方手冊回答以下題目:
1 | hash_one = { a:37 , b:42 } |
參考答案
1 | 1. hash.each do { |key, value| puts "#{key} is #{value}" } |
參考資料
- 為你自己學 Ruby on Rails數字、字串、陣列、範圍、雜湊、符號
本文於 2020-09-14 發表在舊網站。