クラスを作りたい場合:
class Foo
#methods here
end
それは言う必要がありますFileUtils
私はしますか
require 'fileutils'
class Foo
#methods here
end
また
class Foo
require 'fileutils'
#methods here
end
fotanusの答えを補完するために。別のファイルで定義されたものはmain
、どこからでも名前空間にload
残りますrequire
。スコープや名前空間に関して違いはありません。さらに、ローカル変数はファイル間で参照できません。
したがって、選択は保守性に依存する必要があります。ファイルの先頭に依存関係を書いておくと、一目で依存関係が分かりやすいです。一方、特定のモジュール内で必要な場合は、その依存関係が特定のモジュールのみに対するものであることを明確にすることができます。昔は前者が好まれていたと思いますが、今はbundler
gemを使うと依存関係が一目でわかる手段があるので、前者のモチベーションが下がったのかもしれません。
どちらの方法でも機能します。require
はどこでも機能し、FileUtils
クラスの内外で利用できます。
私が github で見たものによると、他のほとんどの言語と同じように、通常は一番上にあります。