2009-08-28 21 views
6

Nó rất phổ biến trong Ruby để xem các phương thức nhận được một băm tham số thay vì chỉ chuyển các tham số cho phương thức.Phát ban và Nhiều Params?

Câu hỏi của tôi là - khi nào bạn sử dụng thông số cho phương pháp của mình và khi nào bạn sử dụng hàm băm thông số?

Có quyền nói rằng thực hành tốt là sử dụng hàm băm tham số khi phương thức có nhiều hơn một hoặc hai tham số?

Trả lời

0

Một trường hợp sử dụng rõ ràng là khi bạn ghi đè phương thức trong lớp con, bạn nên sử dụng tham số băm cho tham số của phương thức gốc cho khi bạn gọi nó.

4

Tôi sử dụng băm tham số bất cứ khi nào chúng đại diện cho một tập hợp các tùy chọn ngữ nghĩa thuộc về nhau. Bất kỳ tham số nào khác là các đối số trực tiếp (thường được yêu cầu) đối với hàm, tôi sẽ chuyển từng tham số một.

+1

+1 - không cần phải có gì trong hàm băm tham số. Các tham số tùy chọn có thể được đặt tên, với các giá trị mặc định, nhưng tôi có xu hướng chuyển chúng thành một giá trị băm và đặt mặc định trong phần thân phương thức nếu cần. –

1

Bạn có thể muốn sử dụng hàm băm khi có nhiều tham số tùy chọn hoặc khi bạn muốn chấp nhận thông số tùy ý, như bạn có thể thấy trong nhiều phương thức của đường ray.

0

Ngày lưu ý khác, và điều này không chỉ liên quan đến Ruby nhưng cho tất cả các ngôn ngữ:

Trong API mà là thay đổi liên tục, nó là đôi khi hữu ích để tuyên bố một số hoặc tất cả các tham số để một hàm như là phản đối một số đơn (trong Ruby này có thể là băm, trong các cấu trúc C, vv), để duy trì sự ổn định API nên tập các đối số được chấp nhận thay đổi trong các phiên bản sau. Tuy nhiên, nhược điểm rõ ràng là khả năng đọc được giảm đáng kể, và tôi sẽ không bao giờ sử dụng "mẫu" này trừ khi tôi thực sự thực sự phải làm.

1

nếu bạn có nhiều hơn 2 tranh cãi. bạn nên bắt đầu nghĩ đến việc sử dụng hàm băm. Đây là cách thực hành tốt được giải thích rõ ràng trong mã sạch link text

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