2012-04-09 32 views
8

Trong một C++ coding style guide, Tôi tìm thấy một khuyến nghị cụ thể (trang 41, đề nghị số 53):c + + styleguide: tại sao lại có các khoản không có giá trị ở bên trái?

Luôn có phi lvalues ​​ở phía bên trái (0 == i thay vì i == 0).

Và tôi không biết điều này tốt cho điều gì? Đang gắn bó với thực hành này?

Tôi không và tôi không biết tại sao anh ấy lại là một thực hành tốt. Lợi thế duy nhất tôi có thể nghĩ là sẽ tránh nhầm lẫn việc chuyển nhượng không chủ ý với một so sánh (if (foo = 0){} so với if (foo == 0){})

Bạn có ý tưởng nào khác tại sao tôi nên sử dụng nó?

+0

Tôi không sử dụng điều đó. Đã nhiều năm kể từ khi tôi thực hiện một lỗi =/==. Kinh nghiệm và kỹ năng đã là một biện pháp đối phó tốt hơn đối với tôi hơn là những biểu hiện khó xử như Yoda Condition. Quyết định sử dụng hoặc không sử dụng của bạn nên dựa trên việc bạn có thích nó hay không, cho dù bạn cảm thấy nó giúp bạn hay không và liệu chuẩn mực mã hóa của dự án của bạn có cấm hay yêu cầu nó hay không. –

+2

Lợi thế của '(0 == i)' là nó có thể bắt được một số lỗi '=' so với '=='. Điểm bất lợi là đọc nó làm cho mắt tôi chảy máu. –

Trả lời

14

Có, bạn đã đoán đúng. Đó là tốt, cũ Yoda condition !!!

enter image description here

+2

nhất. Tuyệt vời. Liên kết. Không bao giờ. Yêu "Chân đế Ai Cập!" –

+1

+1 cho liên kết! –

+0

lol! :) Tôi đang googling về điều này và tôi thích biệt ngữ này. Quá xấu hồ bơi stackoverflow gốc đã bị xóa. Dù sao, tình trạng Yoda được sử dụng thường xuyên như thế nào? Đa số hoặc thiểu số các lập trình viên sử dụng nó? – Novellizator

3

Như bạn nói, lý do một số người sử dụng nó là để thỉnh thoảng tránh gõ = khi họ có nghĩa ==.

Vì nó chỉ bắt một số trường hợp, nơi bạn đang so sánh một vế trái với một hằng số hoặc rvalue, và mỗi trình biên dịch tôi biết sẽ cảnh báo bạn nếu bạn thực hiện sai lầm đó, có rất ít điểm trong làm việc đó .

Ít nhất với những người nói tiếng Anh bản địa, nó làm cho mã được đọc như thể nó được viết ngược; do đó, một "điều kiện Yoda" một số gọi nó làm. Giống như nhiều quy tắc trong hướng dẫn theo phong cách của công ty, nó có từ thời gian khi giao dịch với các trình biên dịch không mong muốn là ưu tiên cao hơn viết mã có thể đọc được.

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