私は、シンボル :DEFAULT、:say、および :@message を使用して「識別子を検索する」と述べているブログ エントリから、この例の Ruby コードを理解しようとしています。しかし、私が知る限り、それは識別子ではなく、それらの識別子に関連付けられた値を検索しています。識別子は変数、メソッドなどの名前だと思いました。したがって、識別子は「DEFAULT」、「say」、および「message」になりますか? プログラムの出力は以下のとおりです。
また、なぜ識別子を調べる必要があるのでしょうか?
class Demo
# The stuff we'll look up.
DEFAULT = "Hello"
def initialize
@message = DEFAULT
end
def say() @message end
# Use symbols to look up identifiers.
def look_up_with_symbols
[Demo.const_get(:DEFAULT),
method(:say),
instance_variable_get(:@message)]
end
end
dem = Demo.new
puts dem.look_up_with_symbols
コードを実行すると、次の出力が得られます。
Hello
#<Method: Demo#say>
Hello