Câu trả lời:
Đúng. Từ các tính năng được đặt tên (nhấn mạnh của tôi):
Tên tính năng là ký hiệu đại diện cho tập hợp các hàm, biến, v.v ... Tệp xác định chúng sẽ cung cấp tính năng này. Một chương trình khác sử dụng chúng có thể đảm bảo chúng được xác định bằng cách yêu cầu tính năng này. Điều này tải tập tin định nghĩa nếu nó chưa được tải.
Để yêu cầu sự hiện diện của một tính năng, hãy gọi
require
với tên tính năng làm đối số.require
nhìn vào biến toàn cụcfeatures
để xem tính năng mong muốn đã được cung cấp chưa. Nếu không, nó tải tính năng từ tệp thích hợp . Tập tin này nên gọiprovide
ở cấp cao nhất để thêm tính năng nàyfeatures
; nếu nó không làm như vậy,require
báo hiệu một lỗi .
Có, với điều kiện là mã trong helm.el
hoặc helm.elc
tôn trọng quy tắc mà nó phải gọi (provide 'helm)
. Cuộc gọi (provide 'helm)
đánh dấu biểu tượng helm
là một tính năng được tải và điều này khiến cuộc gọi thứ hai (require 'helm)
không làm gì cả.
Nếu gói được tải không gọi provide
thì require
báo hiệu lỗi và tính năng không được đánh dấu là đã tải, do đó, cuộc gọi thứ hai (require 'helm)
sẽ thử tải lại (và thường thất bại lần nữa vì lý do tương tự).