require 是 Ruby 的內置方法,用于加載并執行指定的文件,只會加載一次,如果文件已經加載過,則不會重復加載。而 load 是 Kernel 模塊的方法,用于加載并執行指定的文件,每次調用都會重新加載文件。
require 會搜索 Ruby 的加載路徑($LOAD_PATH)來查找文件,而 load 則需要指定文件的完整路徑或相對路徑。
require 會返回 true 或 false,表示加載是否成功,而 load 會返回最后一個表達式的值(通常是 true)。
require 通常用于加載 Ruby 的標準庫或第三方庫,而 load 則用于加載一些非常量化的代碼。
綜上所述,主要區別在于加載方式和返回值。如果想要加載一些常用的庫或模塊,建議使用 require;如果需要動態加載一些代碼或腳本,可以使用 load。