---
# System prepended metadata

title: 'Ruby 小知識01: Hash'
tags: [Ruby]

---

# Ruby 小知識01: Hash
###### tags: `Ruby`

Hash 是一種非常重要的資料儲存結構，在Ruby裡面通常會由一組key+value組成。

key通常會是個符號symbol，value則是「數字、字串、array甚至是hash」都可，並且會包在大括號中，正統呈現方式如下

```ruby=
i_am_hash = {:key1 => "value", :key2 => 123, :key3 => {:toy => "gameboy"}}
```

也可以簡化成這樣
```ruby=
i_am_hash2 = {key1: "value", key2: 123, key3: {:toy => "gameboy"}}
```


如果要進行資料調度的話，可以參考下面的玩法，也可以自己另外寫一份玩玩看，更快抓到感覺唷～

```ruby=
# 基本玩法
a = {name: "harry", gender: "male", height: 178}

a
# => {:name=>"harry", :gender=>"male", :height=>178}
a[:name]
# => "harry"


# 如果把一個hash包進另一個hash，會變怎樣？
b ={personal_data: a, check_date: 21211231}

b[:personal_data]
# => {:name=>"harry", :gender=>"male", :height=>178}

# 如果只要印出名字
b[:personal_data][:name]
# => "harry"
```