2012-12-31 32 views
10

Trong C++ bạn có thể làm nhiều nhiệm vụ bằng cách làm nàyTại sao nhiều bài tập trong một dòng được coi là kiểu xấu?

x = y = z = 10; 

Tuy nhiên, nhiều người đã bảo tôi đó là một phong cách xấu và tôi không nên sử dụng nó mà không cho tôi một lý do tại sao.

Ai đó có thể vui lòng giải thích cho tôi lý do tại sao điều này được coi là một kiểu xấu?

+0

Mmn .. điều xấu duy nhất tôi có thể nghĩ là dễ đọc .. –

+1

Ai là ai? Tôi không thể nghĩ ra một vấn đề duy nhất với điều này, tất nhiên ngoại trừ khả năng đọc. –

+1

Bạn có thể xây dựng một chút về "người" là ai không? vì đây là một kỹ thuật đa nhiệm phổ biến chỉ trong khoảng một tỷ dòng mã nguồn trên thế giới hiện nay. – WhozCraig

Trả lời

10

Đây không phải là kiểu xấu, nhưng bạn thường có thể làm cho mã rõ ràng hơn bằng cách chỉ thực hiện một nhiệm vụ trên mỗi dòng và để trình tối ưu hóa trình biên dịch sắp xếp mọi thứ. Nếu bạn sử dụng kiểu chuyển nhượng nhiều lần thì đôi khi có thể không rõ ràng liệu x = y = z = 10; có chủ ý hay không hoặc đó là lỗi đánh máy cho một cái gì đó như x = y = z + 10;. Bởi luôn luôn giới hạn bản thân bạn cho một nhiệm vụ cho mỗi tuyên bố bạn làm cho nó rõ ràng khi lỗi chính tả xảy ra.

+0

Điều đó có ý nghĩa. Cảm ơn câu trả lời. :) – Caesar

5

Không có vấn đề gì miễn là bạn biết tất cả chúng đều nên có cùng giá trị.

ví dụ:

thay đổi

x = y = z = 10; 

để

x = y = z = 15; 

là rất dễ dàng.

Nếu tuy nhiên, chúng là tùy tiện, các bài tập riêng biệt truyền đạt điều này và dễ dàng thay đổi riêng để kiểm tra.

x = 10; 
y = 10; 
z = 10; 

để

x = 10; 
y = 15; 
z = 10; 

là tốt hơn so với việc phải chia tay dòng.

Điều quan trọng là những gì bạn đang yêu cầu lập trình viên tiếp theo xem mã (hoặc chính bạn trong 6 tháng).

16

Hãy thử nó với những định nghĩa:

int x; 
bool y; 
int z; 
x = y = z = 10; 

Và ngạc nhiên về giá trị của x.

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