Xem xét thời gian đánh giá, sau hai lần tương đương?if/else vs operator ternary
if(condition1)
{
//code1
}
else
{
//code2
}
condition1 ? code1 : code2
Hoặc họ chỉ là cú pháp khác nhau?
Xem xét thời gian đánh giá, sau hai lần tương đương?if/else vs operator ternary
if(condition1)
{
//code1
}
else
{
//code2
}
condition1 ? code1 : code2
Hoặc họ chỉ là cú pháp khác nhau?
Sự khác biệt là trạm sau có thể được sử dụng để trả lại giá trị dựa trên điều kiện.
Ví dụ, nếu bạn có một tuyên bố sau:
if (SomeCondition())
{
text = "Yes";
}
else
{
text = "No";
}
Sử dụng một nhà điều hành ternary, bạn sẽ viết:
text = SomeCondition() ? "Yes" : "No";
Lưu ý cách ví dụ đầu tiên thực hiện một tuyên bố dựa trên một điều kiện, trong khi điều kiện thứ hai trả về giá trị dựa trên điều kiện.
Có & Có.
Chỉ có lợi nhuận là lưu các dòng mã.
Vâng ... Trong trường hợp trước, bạn có thể có bất kỳ số lượng hoặc loại (biểu thức vs tuyên bố) mã thay cho code1
và code2
. Trong trường hợp sau, chúng phải là biểu thức hợp lệ.
Có, đây là hai dạng cú pháp khác nhau và sẽ hoạt động giống hệt nhau và hầu hết mã giống hệt nhau sẽ được trình biên dịch phát ra.
Không phải là người duy nhất. Biến thể thứ hai có thể được sử dụng để liên kết một tham chiếu đến hai đối tượng khác nhau tùy thuộc vào điều kiện, biến thể đầu tiên không thể được sử dụng cho điều đó. – sharptooth
Phải, quên mất điều đó. – Faruz