2011-08-13 33 views
6

Câu hỏi của tôi là siêu việt ngôn ngữ, tôi thường tìm thấy các nguyên mẫu của các hàm "sao chép" xác định các tham số theo thứ tự: đối số1: "đích" rồi đối số2: "nguồn". Đó là trường hợp của memcpy ví dụ trong C. Nhưng nó không phải là trường hợp sao chép tập tin trên bash! Bạn nói, ví dụ: "$ cp file file2" trong đó tệp2 là tệp mới. Điều này có ý nghĩa hơn với tôi, chúng tôi luôn nói "sao chép văn bản ở đây" và không "sao chép ở đây văn bản" đó là Yoda-esque."điểm đến, nguồn" hoặc "nguồn, đích" tốt hơn là gì?

Vì vậy, câu hỏi thực sự là: một API tốt nên sử dụng hình thức (thứ tự) nào? và có thể một câu hỏi khác: hình thức nào là mọi người mong đợi, nếu có?

+0

Câu hỏi này đã được hỏi tại đây. Tuy nhiên, tôi đang cố tìm nó, giúp tôi. :) – Shi

+0

Tôi không tìm thấy câu trả lời nữa, vì vậy tôi đưa ra một bản tóm tắt ngắn: x86 lắp ráp sử dụng "đích mnemocode, nguồn", như "mov ah, 17h", ở trường chúng ta biết rằng "y = 17 * x", và khi nói chúng ta nói "y là 17 lần x". Và trong hầu hết các ngôn ngữ (tự nhiên), chủ đề xuất hiện trước động từ. Vì vậy, một lần nữa, "y là 17 lần x". Nhưng đồng thời, nếu bạn di chuyển một hộp, bạn nói, "di chuyển hộp này trên đó bên cạnh bức tường". Trong trường hợp đó, nguồn ("cái gì" = chủ đề) là đầu tiên, và đích đến thứ hai. – Shi

+0

@shi, lưu ý rằng khi sử dụng khí (bộ lắp ráp GNU) nó đảo ngược: 'mv $ 17,% ah', vì vậy tôi không chắc rằng lắp ráp là một đối số tốt. –

Trả lời

3

Tôi hy vọng nguồn sẽ đến trước và sau đó sẽ đến đích.

Nếu bạn có thể phân biệt bằng ngôn ngữ, sẽ tốt hơn. Ví dụ, trong một ngôn ngữ OO:

source.copyTo(destination); 

Trong một ngôn ngữ với các thông số được đặt tên:

copy(source: s, destination: d); 

Điều quan trọng là làm cho rõ ràng gì đang xảy ra cho những người đọc mã. Mã thường được đọc nhiều hơn viết.

0

Tôi luôn ưu tiên nguồn đích (tôi đang đẩy từ đây đến đây), nhưng điều này cũng phụ thuộc vào cuộc gọi. Nếu nó chỉ là 'bản sao' bạn đang đề cập đến, tôi nghĩ rằng điều này hoạt động. Tôi chắc chắn có các cuộc gọi định hướng khác mà dest-source sẽ áp dụng tốt hơn.

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