2013-08-22 19 views

Odpowiedz

3

Z tego, co mogłem przeczytać na tej stronie i połączonej stronie (http://docs.julialang.org/en/latest/manual/control-flow/#man-short-circuit-evaluation), nie. Kolejność operacji jest inna. Kończy się to tak:

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

pierwsze, zmienna xscalar zostanie sprawdzone pod kątem wartości, które spełniają if, a jeśli nie

if var1 

Wtedy, wtedy i tylko wtedy, gdy jest zaakceptowany, czy następna część ocenia się:

if var2 != 1 

innymi słowy, te dwa stwierdzenia są mniej więcej równoważne:

if var1 
    if var2 != 1 

and 

if var1 && var2 != 1 

(wybacz brak znajomości składni Julia)

pytona odpowiednikiem byłoby:

if var1 and var2 != 1: 

lub z nawiasów, aby pokazać większą przejrzystość,

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

masz na myśli: 'if (xscalar) i (dim! = 1)'? –

+0

Próbowałem wyjaśnić kolejność wartości, które zostały ocenione, wciąż w julia, nie python – Shade

+0

można zaproponować jeden odpowiednik w Pythonie, lub dodać analogię do Pythona? –

13

You można zawsze podać wyrażenie, aby zobaczyć, jak analizator składni je interpretuje:

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

W tym przypadku != wiąże się szczelniej niż &&. Jest to standardowy priorytet w językach, które mają tych dwóch operatorów), takich jak C i Java.

+1

ta funkcja cytowania jest bardzo przydatna! Dziękuję Ci! –