iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
1
自我挑戰組

從色彩繽紛到只看亂碼日子,學程式從 Ruby 出發!系列 第 13

Day13 | 你好,我是 Hash 雜湊 哈希

  • 分享至 

  • xImage
  •  

雜湊Hash

雜湊Hash,是一個Key跟Value的組合,大概是長的像這樣{:key => "value"}兩兩為一組的組合,我們就稱之為Hash。

hash的兩種寫法

一種是箭頭格式的寫法

hash = { :name => "Nina", :age => 18 }

另一種較新的寫法,類似JSON格式的寫法,據說是在Ruby1.9版後來加入的

hash = { name: "Echo", :age => 35 }

這兩種寫法最後輸出的結果都會長的一樣喔!
所以你想寫哪一種方式,可以依照個人喜好選擇喔 ^^d

> hash = { :name => "Nina", :age => 18 }  #=> {:name=>"Nina", :age=>18}
> hash = { name: "Echo", :age => 35 }  #=> {:name=>"Echo", :age=>35}

抓取資料

記得昨天說到Array的時候,有利用arr[0]的方式取的我們要的元素,hash也是如此。
假設我有一筆資料,我想取得Name的資料

Zoo = [{ID: 01}, {Name: "無尾熊館"}, {Category: "室內"}, {Info: "無尾熊為最具代表性的有袋目動物之一"}]

> puts Zoo[:ID]  #=> 1
> puts Zoo[:Name]  #=> 無尾熊館
> puts Zoo[:Category]  #=> 室內

取得Hash的每一筆資料

其實這觀念很簡單,還記得each嗎?

student = {Name: "Adora", age: 18, address: "TaipeiCity"}

student.each do |st|
  p st
end

# [:Name, "Adora"]
# [:age, 18]
# [:address, "TaipeiCity"]

又或者

student = {Name: "Adora", address: "TaipeiCity"}

student.each do |key,value|
  p key
  p value
end

# :Name
# "Adora"
# :address
# "TaipeiCity"

也可以使用keys以及values的方法,這樣取我們要的所有的key以及所有的value

animal = {Name: "cat", age: 7, Adoptor: "Aimee"}

p animal.keys    # [:Name, :age, :Adoptor]
p animal.values  # ["cat", 7, "Aimee"]

先不管鐵人賽第13天,今天是感冒第2天,紀念一下
/images/emoticon/emoticon20.gif


上一篇
Day12 | Array 陣列
下一篇
Day14 | 實體變數(instance Variable)
系列文
從色彩繽紛到只看亂碼日子,學程式從 Ruby 出發!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言