LoginSignup
1
0

More than 1 year has passed since last update.

【入門】必ず覚えておきたいRubyの基礎

Last updated at Posted at 2022-08-31

はじめに

今回は、Rubyの基礎についてまとめます。

※おことわり※
基本的に学習内容のアウトプットです。
初学者であるため、間違い等あればご指摘いただけますと嬉しいです。

この記事の目的

Ruby基礎内容のアウトプット

この記事の内容

  1. ハッシュの基礎
  2. 二重ハッシュ
  3. クラスとインスタンス

1. ハッシュの基礎

ハッシュとは、複数のオブジェクトをキーとバリューのセットで、まとめて管理することがきるオブジェクトです。
ハッシュは、キー で要素を管理していることがポイントです。
キーとバリューのセットを、 キーバリューストア と言います。

  • ハッシュの書き方
#書き方① シンボル
hash = { キー: }

#書き方② ロケットハッシュ
hash = {:キー=> 値}
  • キーの取得方法(keysメソッド)
#オブジェクト.keys
hash.keys
  • バリューの取得方法(valuesメソッド)
#オブジェクト.values
hash.values
  • 指定の値の取得方法
#オブジェクト[:キー]
hash[:key]

なぜシンボルを使って記述をするのか?

コード上は文字列のように見えるが、数値として処理されるため、処理速度が早くなる。

具体的なハッシュの書き方と値の取得

hash = {one: 1, two: 2, three: 3}
=> {:one=>1, :two=>2, :three=>3}

puts hash.keys
#返り値
one
two
three

puts hash.values
#返り値
1
2
3

puts hash[:one]
#返り値
1

2. 二重ハッシュ

  • 二重ハッシュの書き方
user_date = {user: {profile: {name: '一郎'}}}
  • 値の取得方法
    取得したい値までのキーを連続で指定する。
puts user_date[:user][:profile]
#返り値
{:name=>"一郎"}

配列の中に二重ハッシュが格納されている場合

変数 user_data は、複数のユーザーの情報をハッシュとして持つ。

user_data = [
 {user: {profile: {name: '一郎'}}},
 {user: {profile: {name: '二郎'}}},
 {user: {profile: {name: '三郎'}}},
]
  • 値の取得方法
    配列に格納されている値をeachメソッドで1つずつ取り出す。
    取り出された値はハッシュなので、取得したい値(name)までのキーを連続で指定する。
#全ユーザーの名前を取得する
user_data.each do |name|
 puts name[:user][:profile][:name]
end
#返り値
一郎
二郎
三郎

#特定のユーザー情報を取得する
puts user_data[0]
#返り値
{:user=>{:profile=>{:name=>"一郎"}}}

3. クラスとインスタンス

クラスとは、「もの」を作るための設計図やルールのようなものです。
インスタンスとは、その設計図(クラス)を元に作られるデータのことです。
例えば、「車」を作るための設計図がクラスであり、設計図から作成された「パトカー」や「消防車」等がインスタンスです。

  • クラスの定義
    • インスタンスの生成
    • インスタンスメソッドの実行
class Car
  def initialize(type, color)
    @type = type
    @color = color
  end

  def type
    @type
  end

  def color
    puts "この車は#{@color}です。"
  end
end

#クラスを生成
car = Car.new("消防車", "赤色")

#書き方①
puts "この車は、#{car.type}です。"
#返り値
この車は、消防車です。

#書き方②
puts car.color
#返り値
この車は赤色です。
1
0
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
1
0