2015-12-22 15 views
5

arasındaki farkı anlama Kitaplığı veya modülü içe aktarmanın üç yöntemi arasındaki farkı anlamıyorum.`load`,` require` ve `require_relative`

require 'file.rb' 

aynı işlevselliği gerçekleştirmek istiyorum ama zaten ithal edilmiş bir dosyayı içe olmaz: Şu anda Anladığım kadarıyla,

load 'file.rb' 

oysa şimdiki dosyaya dış dosyasının içeriğini ithal ediyorum .

require_relative 'file.rb' 

require benzer, fakat require dosyayı bulmak için bir çaba arama yolunu $: kullanacağı ise sadece geçerli dizinde bir dosya yükleyecektir. Hiç şüphem yok ki, üç mekanizma hakkındaki anlayışım kusurlu. Birileri biraz açıklama verebilir mi? Bir dosya içe aktarılmış olup olmadığına bakılmaksızın bir dosya almak istediğinizde

+0

Bu oldukça fazla. require_relative mevcut dosya konumlarına göre. Yük her zaman yük, sadece ilk kez gerektirir. – Mircea

+2

Bunu da şu şekilde değerlendirebilirsiniz: - http://ionrails.com/2009/09/19/ruby_require-vs-load-vs-include-vs-extend/ – Abhi

cevap

8

load kullanılır. Bir dosyayı yalnızca daha önce almadıysanız, require veya require_relative kullanılır.

Bundan, bu, içe aktarılan dosya analiz nesnesi (veri dosyası) olduğunda, diğerinin, programda kullanılacak bazı özellikleri (programın bir parçası, kitaplık) sağlamak için kullanılırken kullanılır. , çerçeve).

require yalnızca $:'a göre yolları işleyebilirken, require_relative geçerli dizine göre yolları işleyebilen bir uzantıdır. require_relative, require'un bir üst kümesidir ve require dağıtılabilir (require_relativerequire kullanılarak yazılmasına rağmen, require dağıtılacaksa yeniden yazılmalıdır).

İlgili konular