rubyでメソッド名と変数名が被ったらどうなるのか気になったので、試してみました。
[ruby]
def sample()
return "sample"
end
p sample
sample = "not method"
p sample
[/ruby]
の実行結果は
“sample”
“not method”
になります。
メソッド名に変数名を代入したらずっと変数のままのようです。
しかし、「()」をつけると、メソッドとして認識してくれます。
以下のようなコードを実行した際、
[ruby]
def sample()
return "sample"
end
p sample
sample = "not method"
p sample
p sample()
[/ruby]
“sample”
“not method”
“sample”
といった実行結果が得られます。
なるほど。末尾に「()」がついていればそれはメソッドということのようです。
ちなみに末尾に「()」が付いた状態で何かを代入しようとすると、エラーが出ます。
末尾の「()」はずしたら、変数としても使って良いよ。
「()」ついてればそれはメソッドだからね。
という感じでした。
コメントを残す