Tôi đã viết một mô-đun Erlang, nơi không phải tất cả các chức năng nội bộ được gọi trực tiếp. Thay vào đó, có một vài chức năng trông giống như sau:Suppressing Erlang "không sử dụng chức năng" cảnh báo
weird_func(Cmd, Args) ->
?MODULE:Cmd(Args).
Đó là một ví dụ đơn giản, nhưng bạn có ý tưởng. Trình biên dịch Erlang phun ra cảnh báo về các chức năng không sử dụng, khi thực tế chúng được sử dụng, không phải trực tiếp. Có cách nào để ngăn chặn những cảnh báo này không? Lý tưởng nhất là tôi không muốn ngăn chặn tất cả các cảnh báo như vậy, nhưng thay vào đó tôi muốn nói cho trình biên dịch Erlang xem xét một vài chức năng cụ thể như các trường hợp đặc biệt.
Gọi chức năng theo cách đó sẽ chỉ hoạt động nếu được xuất. Bạn đang thực sự thực hiện cuộc gọi "bên ngoài" với nó ngay cả khi bạn sử dụng '? MODULE', chỉ là một macro được xác định trước mở rộng đến tên mô-đun và chuyển tên hàm làm đối số. N.B. 'Args' sẽ là danh sách các đối số và hàm được gọi sẽ chỉ có một đối số. – rvirding