tôi stumbled khi việc xây dựng sau trong C++:Điều Hành | = cho một boolean trong C++
bool result = false;
for(int i = 0; i<n; i++){
result |= TryAndDoSomething(i);
}
Tôi cho rằng |=
đây là một phím tắt cho các toán tử OR, và rằng result
sẽ bằng true
vào cuối nếu ít nhất một trong các cuộc gọi này đến TryAndDoSomething
đã trả lại true
.
Nhưng bây giờ tôi tự hỏi nếu có nhiều hơn một cuộc gọi thực sự có thể trở lại true
. Thật vậy, nếu chúng ta mở rộng các hoạt động như:
result = result || TryAndDoSomething(i);
Sau đó, phương pháp này sẽ được gọi là chỉ khi trở lại đánh giá để false
, đó là, nếu không có cuộc gọi khác trước khi trở true
. Do đó, sau khi một cuộc gọi trở về true
, sẽ không có cuộc gọi nào khác được thực hiện.
Đây có phải là cách giải thích đúng không?
Bạn có thể kiểm tra dễ dàng. Tôi đã làm, và có vẻ như tất cả các cuộc gọi được thực hiện, không chỉ là các cuộc gọi đầu tiên. –