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ó?
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. –
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. –