2012-02-03 27 views
5

YARD cho phép tôi chỉ định các loại tham số phương thức và giá trị trả lại. Khi tôi thực sự thích kiểu vịt, thật thú vị khi thấy rằng YARD cũng hỗ trợ định nghĩa các kiểu bằng cách chỉ định các phương thức mà chúng phải hỗ trợ.Loại tài liệu vịt có nhiều phương pháp trong YARD

Như bạn có thể thấy here, các biểu thức như

#first_method, #second_method
được hiểu là sự phân tách hợp lý. Điều này có nghĩa là một đối tượng cần hỗ trợ #first_method hoặC#second_method hoặc cả hai. Đây không phải là những gì tôi cần.

Tôi muốn có thể chỉ định rằng một đối tượng được yêu cầu để hỗ trợ cả #first_method và #second_method cho tham số của tôi. Có cách nào để xác định điều này không?

Trả lời

6

Không có cú pháp thành ngữ thành ngữ để chỉ định giao diện loại vịt hợp chất. Điều đó nói rằng, lưu ý rằng tất cả các loại thông số kỹ thuật thực sự chỉ là văn bản dạng tự do; các liên kết phân tích cú pháp kiểu YARD được đưa ra trong câu hỏi đơn giản chỉ là một bộ cú pháp thông thường hoặc thành ngữ để chỉ định các giao diện chung. Nếu bạn nghĩ một cách thông minh để chỉ định các loại này (và điều đó có ý nghĩa với người dùng của bạn), bạn có thể tự do làm như vậy. Có lẽ một cái gì đó như #first#second có thể hoạt động hoặc #first&#second.

Đề xuất của tôi, tuy nhiên, sẽ tạo ra một loại cụ thể để bao bọc giao diện đặc biệt này. Ngay cả khi bạn không thực sự sử dụng sử dụng loại loại trong thời gian chạy của mình, nó sẽ là đối tượng trong miền của bạn để giải thích giao diện cho người dùng của bạn. Ví dụ: bằng cách tạo một class Foo với hai phương pháp #first#second và sau đó ghi lại hai phương pháp này, giờ đây bạn có thể sử dụng Foo làm loại của mình. Bạn có thể giải thích trong tài liệu lớp Foo rằng nó không bao giờ thực sự được sử dụng trong mã và chỉ tồn tại như một "giao diện", nếu đó là trường hợp. Bạn cũng có thể biến Foo thành "mô-đun" để biểu thị rằng đó là một "giao diện" (hoặc "giao thức"), nếu bạn thích ngôn ngữ đó hơn là một loại cụ thể.

Các vấn đề liên quan