3

Ruby Standard Library Documentation for 1.9.3を見てきました。明示的に要求する必要があるライブラリをどのように見つけることができるのか疑問に思っています。

たとえば、jsonライブラリを明示的に必要とする必要があると言われましたが、必要はありませんrubygemsが、両方とも標準ライブラリ リストに表示されます。

要件に関する情報を探すことができる別の場所、またはすでに「必要」なものを確認するために実行できる pry/irb コマンドはありますか?

4

2 に答える 2

7

使用する場合は、すべてのライブラリを必須/ロードする必要があります。

パフォーマンスに関してrequireはスマートで、ライブラリが既に読み込まれている場合は読み込まれません。

ただし、ライブラリが必要かどうかを確認したい場合は、それが定義する最上位の名前空間を確認し、これが現在のスコープで定義されているかどうかを確認する必要があります。たとえば、IRB セッションを開き、次のようにします。

defined? JSON  # => nil (it's not loaded)
require 'json' # => true (load it)
defined? JSON  # => "constant" (it's loaded)
require 'json' # => false (it's already loaded, so it's not loaded it again)
于 2013-03-18T14:31:13.203 に答える
2

とにかく何かを要求することは、通常は問題ありません。それらがすでにロードされている場合、一般的に言えば、requireステートメントは効果がありません。

一部のコア ライブラリ コンポーネントは、自動的に読み込まれるか、最上位のシンボルを参照して自動読み込みされます。このリストは、Ruby のバージョンによって異なります。

于 2013-03-18T14:30:46.073 に答える