LoginSignup
1
1

More than 3 years have passed since last update.

スコープで見るRubyとPythonの違い

Posted at

スコープとは

ある変数を利用できる範囲のこと。
スコープの範囲を超えた変数を使おうとするとエラーが起こります。

実際にRubyとPythonでスコープが異なる例を見ていきましょう。

Rubyの場合

name = 'Mike'
def greeting()
  puts ('Hello ' + name)
end
greeting() #=> error (undefined local variable)

Rubyではメソッド内ではメソッド内で定義された変数しか使えません。そのため今回、greetingメソッドではスコープ外の変数であるnameを使おうとしているのでエラーが起こるのです。

Pythonの場合

name = 'Mike'
def greeting():
  print('Hello ' + name)
  x = 2

greeting() #=> Hello Mike
print(x) #=> error

Pythonではnameという変数はgreetingメソッド内まで影響を与えるため、エラーなく実行することができます。

ところがメソッド内で定義されたxという変数はメソッド外では使えないため、エラーが起きます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1