LoginSignup
0

More than 5 years have passed since last update.

インスタンスメソッドとクラスメソッド

Last updated at Posted at 2018-09-03

超基礎メモ。

メソッドとクラスの関係

class Hello

    def sayHi(name)
        puts "hi! #{name}"
        return ""
    end

    sayHi("yukaaaah")
    /* sayHi "yukaaaah"   実はカッコは省略可能 ←驚き! */
    p sayHi

end
  • メソッドはクラスの中に定義する。
  • 引数はカンマ区切りで何個でもOK。デフォルト値も渡せる。
  • メソッド内で定義された変数は外では使えない。
  • @:インスタンス変数
    • クラスのインスタンスごとに作られる。
    • 他のフィーチャでも使いたい場合に、インスタンス変数を使う。

メソッドの入れ子

  1. Ruby でネストしたメソッドは定義できるが、変数のスコープに注意 -> 手続きオブジェクトを使って、外側の変数を参照する。
  2. lambda{ } または proc{ }
  3. Ruby ではオブジェクトのインスタンス変数はクラスと何のつながりもない。インスタンス変数は値を代入したときに初めて出現する。

  4. 内部スコープから、外部スコープを参照できない
    プログラムがスコープを切り替える場所は3つ

    • クラス定義
    • モジュール定義
    • メソッドよひだし
      クラス・モジュールはすぐに実行されるが、メソッドは呼び出した時にのみ実行
  5. トップレベルに定義したメソッドの所属先は Object
    self -> カレントオブジェクト
    toplevel のself -> main

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