Ruby勉強

インターネットの企画職な人がプログラミングを勉強するブログ

Ruby 定数の参照順位 - Silver/Gold試験対策

定数は外側を参照し、その次に継承関係を探索する

class C
  CONST = "c"
end
class A
  CONST = "a"
  class B < C
    p CONST
  end
end #=> "a"

このように明示的に、定数を参照することもできる

class C
  CONST = "c"
end
class A
  CONST = "a"
  class B < C
    p C::CONST
  end
end #=> "c"
CONST = "d"
class A
  p CONST
end #=> "d"

トップレベルは参照順位が低い

CONST = "d"

class A
  CONST = "e"
end

class B < A
  p CONST
end #=> "e"

参照先をトップにすると

CONST = "d"

class A
  CONST = "e"
end

class B < A
  p ::CONST
end #=> "d"