2013-08-22 23 views

Trả lời

3

Từ những gì tôi có thể đọc trên trang đó và trang được liên kết (http://docs.julialang.org/en/latest/manual/control-flow/#man-short-circuit-evaluation), không. Thứ tự của các hoạt động là khác nhau. Nó kết thúc như thế này:

if (var1) && (var2 != 1) 

Thứ nhất, biến xscalar được kiểm tra một giá trị mà sẽ đáp ứng một câu lệnh if, như thể bạn đã làm

if var1 

Sau đó, nếu, và chỉ nếu đó là được chấp nhận, hiện các phần tiếp theo được đánh giá:

if var2 != 1 

Nói cách khác, hai câu lệnh này là tương đương:

if var1 
    if var2 != 1 

and 

if var1 && var2 != 1 

(tha thứ cho sự thiếu hiểu biết cú pháp julia)

Một tương đương trăn này sẽ là:

if var1 and var2 != 1: 

hay, với dấu ngoặc đơn để hiển thị một cách rõ ràng hơn,

if (var1) and (var2 != 1) : 
+0

có nghĩa là: 'if (xscalar) và (dim! = 1)'? –

+0

Tôi đã cố gắng để giải thích thứ tự các giá trị được đánh giá, vẫn còn trong julia, không python – Shade

+0

bạn có thể đề xuất một tương đương trong Python, hoặc thêm một số tương tự để Python? –

13

Bạn luôn có thể trích dẫn một biểu thức để xem cách trình phân tích cú pháp diễn giải nó:

julia> :(var1 && var2 != 1) 
:(var1 && (var2!=1)) 

Trong trường hợp này, != liên kết chặt chẽ hơn &&. Đây là ưu tiên tiêu chuẩn trong các ngôn ngữ có hai toán tử này, chẳng hạn như C và Java.

+1

tính năng trích dẫn này là rất hữu ích! Cảm ơn bạn! –

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