2

クラスを作りたい場合:

class Foo
    #methods here
end

それは言う必要がありますFileUtils

私はしますか

require 'fileutils'

class Foo
    #methods here
end

また

class Foo
    require 'fileutils'
    #methods here
end
4

2 に答える 2

5

fotanusの答えを補完するために。別のファイルで定義されたものはmain、どこからでも名前空間にload残りますrequire。スコープや名前空間に関して違いはありません。さらに、ローカル変数はファイル間で参照できません。

したがって、選択は保守性に依存する必要があります。ファイルの先頭に依存関係を書いておくと、一目で依存関係が分かりやすいです。一方、特定のモジュール内で必要な場合は、その依存関係が特定のモジュールのみに対するものであることを明確にすることができます。昔は前者が好まれていたと思いますが、今はbundlergemを使うと依存関係が一目でわかる手段があるので、前者のモチベーションが下がったのかもしれません。

于 2013-08-31T03:36:09.033 に答える
3

どちらの方法でも機能します。requireはどこでも機能し、FileUtilsクラスの内外で利用できます。

私が github で見たものによると、他のほとんどの言語と同じように、通常は一番上にあります。

于 2013-08-31T03:21:39.473 に答える