06/09/18 10:47:02
require "lib"
p max([3, 2, 1]) # evil
############## lib.rb ##################
def max(a) # つい定義してしまった下働き関数
"evil"
end
# 本来やりたかった処理
Pythonだとimport libでインポートしたとき、lib.pyのグローバル関数は
libモジュールの関数とみなされるので、main.pyのグローバル関数とは
ならない。しかし、Rubyだとしっかりグローバル関数とみなされる。
まあ、RubyにもModuleはあるから明示的にそれを使えといった反論は
ありそうだけど、ミスしやすいという意味で「より危険」と言える。