Ruby学習メモ(初学者向け)
どうも、nus4です。
Ruby学習メモの第二弾です。
前回に引き続き、こんなのあったな〜っと思っていただければ嬉しいです。
学習方法
- Progate Rubyコース
(1ヶ月有料利用する予定なので、期間中に積極的活用してます!)
📝 目次
- メソッドの書き方
- キーワード引数を使用したメソッドの書き方
- クラスの書き方
- インスタンスの書き方
- initializeメソッドの書き方
- クラスの読み込み
- コンソールの入力を取得する
- クラスの継承
- 日付を取得する方法
メソッドの書き方
# メソッドの宣言
def メソッド名(引数名)
処理
return 戻り値
end
# メソッドの呼び出し
メソッド名(引数名)
戻り値には前の"return"を省略する方がRubyっぽいみたいです
キーワード引数を使用したメソッドの書き方
# メソッドの宣言
def メソッド名(引数名1:, 引数名2:, 引数名3:)
処理
return 戻り値
end
# メソッドの呼び出し
メソッド名(引数名1: 値1, 引数名2: 値2, 引数名3: 値3,)
引数が複数あるメソッドは、ハッシュの応用で、キーワード引数にしてあげると、
呼び出し側の引数の対応がわかりやすいです。
クラスの書き方
# クラスの宣言
class クラス名
# インスタンス変数の宣言
attr_accessor :変数名
# メソッドを持たせることも可能(インスタンスメソッド)
def メソッド名(引数名)
処理
return 戻り値
end
# メソッドを持たせることも可能(クラスメソッド)
def クラス名.メソッド名(引数名)
処理
return 戻り値
end
end
attr_accessorを使用して宣言することで、
setter,getterの定義を省略してインスタンス側で読み書きが可能になります。
クラス内のみで完結するメソッドはクラスメソッド、
インスタンスで使いたいメソッドはインスタンスメソッドを使いましょう。
インスタンスの書き方
# インスタンスの作成
インスタンス名 = クラス名.new
# インスタンス変数の書き込み
インスタンス名.変数名 = 値
# インスタンスメソッドの使用
インスタンス名.メソッド名
initializeメソッドの書き方
# 引数が2つある場合の記載例
def initialize(引数名1:, 引数名2:)
処理
# 変数の書き込みを実装したいとき(事前にインスタンス変数を宣言)
self.変数名 = 値
end
initializeメソッドとは、インスタンス生成直後に自動生成されるメソッドです。
上記の引数が2つある例の場合、インスタンス作成側も引数を2つ用意する必要があります。
ex)インスタンス名 = クラス名.new(引数名1: 値1, 引数名2: 値2)
クラスの読み込み
require "./相対パス.rb"
インスタンスの作成など、他クラスの呼び出しを行う際は
呼び出し元のクラスを用いてrequireする必要がある。
コンソールの入力を取得する
# 入力値を変数に代入する(入力値が文字列)
変数名 = gets.chomp
# 入力値を変数に代入する(入力値が数値)
変数名 = gets.chomp.to_i
上記コードが実行されるとその瞬間にコンソールは入力待機状態になり、
エンターキーを押されるまでに入力された値を取得することができます。
クラスの継承
# クラス宣言時に追記するだけ
class クラス名 < 親クラス名
継承することで、親クラスで定義されたメソッドを使えたり、
子クラス側で親クラスのメソッドを書き変えることができます。
(いわゆるオーバーライド。変えない部分は書く必要ない)
逆に、親クラス側の同名メソッドを使いたい場合は、
superメソッドを使うことで子クラス側で呼び出すことができます。
日付を取得する方法
# Dateクラスを読み込む
require "date"
# 今日の日付のDateインスタンスを作成する
インスタンス名 = Date.today
# 指定した日付のDateインスタンスを作成する
インスタンス名 = Date.new(YYYY, MM, DD)
# 日曜日か判定するメソッド
インスタンス名.sunday?
DateクラスはすでにRubyで準備されているため、
呼び出すだけで色々な便利メソッドが使えます。
ProgateのRuby講座はこれで完了しました。
次回はRails講座に挑戦したいと思います!