Hầu hết (nhưng tôi thực sự chỉ biết một số nhỏ để không được cầu kỳ vào thời điểm đó) ngôn ngữ cấp cao hỗ trợ nhiều toán tử gán khác nhau.Hỗ trợ ngôn ngữ hiện đại + = nhưng không && =
a += 5; // increment a and assign result beack to a.
Nhưng không ai (mà tôi đã xem xét (một lần nữa một số ít)) dường như để hỗ trợ các & & = toán tử.
Lý do tôi hỏi tôi thời gian gần đây thấy điều này:
// simplified.
bool x = false;
x = x && testA(); // perform test A/B/C/D stop on first failure.
x = x && testB();
x = x && testC();
x = x && testD();
Và tôi đã tự hỏi tại sao chúng ta không thể sử dụng:
x &&= testA(); // perform test A/B/C/D stop on first failure.
x &&= testB();
x &&= testC();
x &&= testD();
Lý do được rằng & & = không được hỗ trợ trong C/C++ mà khiến chúng tôi nghĩ tại sao.
Có (không ý định chơi chữ) lý do hợp lý tại sao ngôn ngữ hỗ trợ tất cả các nhà khai thác lớn khác với một hình thức phân công nhưng không phải là & & = hoặc || =
Tôi có một hồi ức mơ hồ cho một cuộc tranh cãi chống lại những điều này, nhưng tìm kiếm google và SO rất khó khi cụm từ tìm kiếm của bạn là '& & =' và kết quả là tôi không tìm thấy gì.
Tôi đã có suy nghĩ _exactly_ hôm nay, bởi vì trong lua, '&&' là từ 'và', nên tôi tự hỏi họ đã làm thế nào' && = ', và nhận ra rằng không có' && = ', trong lua hoặc in hầu hết các ngôn ngữ. –