0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

(Ruby)ハッシュについて(備忘録)

Last updated at Posted at 2019-05-20

ハッシュ#

・連想配列と言われ、キーワードで取り出すデータをもとめる仕組み
Webサイトのユーザー管理などに使われる

型)

qiita.rb
{key1 =>value1 , key2 => value2 ・・・・・ }

例)

qiita.rb
money = {"tom" => 400 , "ken" => 500 , ・・・・・}
user = {"name" => "tom" , "age" => "16" , "birthday" => "12/2" , ・・・・・・}

ハッシュのデータの取り出し方

qiita.rb
money["tom"]
=> 400
user["name"]
=>"tom"

シンボル#

""や''と同じように扱える文字列オブジェクトのこと
シンボルはkeyにのみ使う

型)

```ruby:qiita.rb :シンボル名 ```

例)

``````ruby:qiita.rb :tom ```

注意・・・文字列と全く同じではないため、基本的に英文字のみで作り、_(アンダーバー)などは使用しない

シンボルを使ったハッシュの作り方##

qiita.rb
user = {:name => "tom" , :age => "16" , :birthday => "12/2" , ・・・・・・}

user = {name: "tom" , age: "16" , birthday: "12/2" , ・・・・・・}

データの取り出し方

qiita.rb
user[:name]
=> "tom"

注意・・・name:となっていても、取り出すときは:nameにしなければ取り出せない

ハッシュの繰り返し処理#

型)

```ruby:qiita.rb ハッシュ.each do |変数1,変数2|   繰り返したい処理 end ```

メモ)
変数1はkey、変数2はvalueのこと
ハッシュはkey用とvalue用の2つの変数が必要

例)

qiita.rb
pet = {tom: "dog" , ken: "cat" , gai: "tiger"}

pet.each do |key , value|
puts "#{key}#{value} を飼っています"
end

=>
tom  dog を飼っています
ken  cat を飼っています
gai  tiger を飼っています

補足)変数は型と比較するためkeyとvalueにしましたが、実際はわかりやすい変数(nameやanimal)にする

まとめ#

ハッシュの書き方##

qiita.rb
{"one" => "1" , "two" => "2" ,・・・・・ }

{:one => "1" , :two => "2" ,・・・・・ }

{one: "1" , two: "2" ,・・・・・ }

ハッシュの繰り返し処理#

qiita.rb
ハッシュ.each do |変数1,変数2|
  繰り返したい処理
end

pet.each do |key , value|
puts "#{key}#{value} です"
end

参考

[【七海有里佳とRubyの基礎】Lesson10 配列と似て非なるもの-ハッシュ](https://www.youtube.com/watch?v=6-aUJl6vveo&t=606s)
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?