フラットスコープ
rubyにはスコープゲートがある。
スコープゲートを越えて変数は参照できない。
スコープゲートには
class
module
def
があり、それぞれのブロックの中ではスコープが切り替わる。
1 2 3 4 5 6 7 8 9 10 |
|
def printでスコープが変わるので、外側のstrが参照できない。
解決するには例えばフラットスコープ
1 2 3 4 5 6 7 8 9 10 |
|
スコープゲート(class/module/def)を使わなければいいという話。
今回はdefをdefine _methodに変更した
classはClass.new
moduleはModule.new
でブロック内部に中身を記述する。
一応クラスの場合の例。
1 2 3 4 5 6 7 8 |
|