超基礎メモ。
メソッドとクラスの関係
class Hello
def sayHi(name)
puts "hi! #{name}"
return ""
end
sayHi("yukaaaah")
/* sayHi "yukaaaah" 実はカッコは省略可能 ←驚き! */
p sayHi
end
- メソッドはクラスの中に定義する。
- 引数はカンマ区切りで何個でもOK。デフォルト値も渡せる。
- メソッド内で定義された変数は外では使えない。
- @:インスタンス変数
- クラスのインスタンスごとに作られる。
- 他のフィーチャでも使いたい場合に、インスタンス変数を使う。
メソッドの入れ子
- Ruby でネストしたメソッドは定義できるが、変数のスコープに注意 -> 手続きオブジェクトを使って、外側の変数を参照する。
-
lambda{ }
またはproc{ }
Ruby ではオブジェクトのインスタンス変数はクラスと何のつながりもない。インスタンス変数は値を代入したときに初めて出現する。
-
内部スコープから、外部スコープを参照できない
プログラムがスコープを切り替える場所は3つ- クラス定義
- モジュール定義
- メソッドよひだし
クラス・モジュールはすぐに実行されるが、メソッドは呼び出した時にのみ実行
トップレベルに定義したメソッドの所属先は
Object
self
-> カレントオブジェクト
toplevel のself
->main