Was ist der Unterschied zwischen der Verwendung von
? %Vor%und
%Vor% Wenn Sie% co_de zweimal die gleiche Datei verwenden, wird sie nur einmal geladen und ausgewertet. require
hingegen lädt und bewertet die Datei jedes Mal. Es gibt auch Unterschiede in der Auflösung des tatsächlichen Dateinamens ( danke, Saurabh ).
Nehmen wir an, wir haben eine Bibliothek load
Dann haben wir eine Datei, die einige nicht-idempotente Operationen durchführt. Sagen wir, undefiniert eine Methode
%Vor% Dann, wenn wir foo
mod.rb zweimal machen, passiert nichts Schlimmes. require
wird erfolgreich undefiniert.
Aber wenn wir bar
mod.rb zweimal verwenden, dann wird die zweite Operation load
fehlschlagen, weil die Methode schon weg ist:
Es gibt keinen Fehler mit undef
, weil in diesem Fall require
nur einmal vorkommt. Zugegeben, dieses Beispiel ist ziemlich erfunden, aber ich hoffe, es veranschaulicht den Punkt.
Tags und Links ruby ruby-on-rails