Tôi đang tham gia khóa học cấu trúc dữ liệu trung gian như một điều kiện tiên quyết để tham gia chương trình MS MS tại một trường đại học mà mọi người ở Mỹ đều nghe thấy. Một dòng mã được viết trong lớp khiến tôi chú ý:
if (a > 33 | b++ < 54) {...}
Điều này sẽ không vượt qua một đánh giá mã tại nơi làm việc của tôi. Nếu bạn đã viết mã như thế này trong một cuộc phỏng vấn, đây sẽ là một cuộc đình công đáng kể chống lại bạn. (Ngoài việc là một điều kiện có tác dụng phụ, nó còn thông minh với chi phí rõ ràng.)
Trên thực tế, tôi chưa bao giờ thấy một điều kiện có tác dụng phụ và Googling cũng không bật lên nhiều. Một sinh viên khác ở lại sau giờ học để hỏi về nó, vì vậy tôi không phải là người duy nhất nghĩ rằng điều này là kỳ lạ. Nhưng giáo sư khá kiên quyết rằng đây là mã có thể chấp nhận được và ông sẽ viết một cái gì đó giống như vậy tại nơi làm việc. (Công việc FT của anh ấy là SWE hiệu trưởng tại một công ty mà bạn đã nghe nói tới.)
Tôi không thể tưởng tượng một thế giới trong đó dòng mã này sẽ được chấp nhận, chứ đừng nói là mong muốn. Tôi có lầm không? Được không Còn trường hợp tổng quát hơn: điều kiện có tác dụng phụ thì sao? Những cái đó có ổn không?