本投稿について
前回のRubyの復習1の続きです。
"目的"と"教材"はRubyの復習1を参照ください。
①用語のメモ
○オーバーライド
・親クラスから子クラスへ継承した際のメソッドの上書き処理のこと
・同じ名前のメソッドでも子クラスが優先される
○RoboCop
・"Rubyの規約を守れているか?" 自動で判定してくれるソフト
・目的は,規約やめちゃめちゃ多いため,人力で処理したら日が暮れるため
○オブジェクト
・数値,処理などの総称
・ruby内の1集合体はすべてオブジェクトと呼ばれる
・クラス → メソッド → 値 の順に階層が進む
○破壊的な編集
・値の書き換え等の結果を保存すること
・コードでは "!" を末尾につける
・これをしないと格納した値が元の値に戻ってしまう
○式展開
・文字列を出力する中に変数を含ませた場合の書き方の種類
name = 'naoto'
puts "my name is #{name}"
・#{name}のところが式展開
・大事なのは ダブルコーテーション("") で囲むこと
・これを実行すると,以下のように表示される
my name is naoto
○動的型付け
・型指定がいらない記法のこと
・通常のprogramingでは変数宣言時に型を記述して値を格納する
・rubyではいきなり値を格納できる
○リテラル
・rubyで直接記述できるもの
・ex)数字,文字,配列,ハッシュ など
○カプセル化
・クラス外からのメソッドへのアクセスを禁止する保護作用のこと
・オブジェクト指向の概念の一つ
②モジュール
・定数はクラスを1つの集合として定義すること
・デュエマで例えると,定数がカード,クラスがパック,モジュールがボックスに相当
・モジュール間での継承はできない
・インスタンス作成不可
⇨インスタンスメソッドが使えないのでselfが必要
(self.メソッド名として処理を記述することで
インスタンス名.メソッド名 ⇨ モジュール名.メソッド名 と書き換えるイメージ)
module Driver
def self.run
puts 'Run'
end
def self.stop
puts 'Stop'
end
end
Driver.run
Driver.stop
③例外処理
・エラー起きそうな処理とその対応を記載して処理を中断する
・begin ~ end 内に"中断後の処理"と"メッセージ"を書く
puts '--- Please enter an integar. ---'
i = gets.to_i
begin
puts 10/i
rescue => ex
puts 'Error!'
puts ex.message
puts ex.class
ensure
puts 'end'
end
【解説】
・begin~end
・この中の最後のエラー発生箇所までflowが進む
・rescue => ex
⇨ここにエラーが起きた時の処理を記載
・ensure
⇨例外の発生有無に関係なく最後に実行する処理を記載