Sono nuovo di JavaFX. Non sono in grado di capire perché il codice qui sotto non funziona.Perché questo codice "vincolante" non funziona come previsto in JavaFX?
import javafx.util.Sequences;
def nums = [1..10];
var curr = 0;
var evenOrOdd = bind if (nums[curr] mod 2 == 0) "{nums[curr]} is an even number" else "{nums[curr]} is an odd number";
for (curr in [0..(sizeof nums -1)])
{
println("{evenOrOdd}");
}
sto ottenendo
1 is an odd number
1 is an odd number
1 is an odd number
1 is an odd number
1 is an odd number
1 is an odd number
1 is an odd number
1 is an odd number
1 is an odd number
1 is an odd number
Se cambio il codice per
import javafx.util.Sequences;
def nums = [1..10];
var curr = 0;
var evenOrOdd = bind if (nums[curr] mod 2 == 0) "{nums[curr]} is an even number" else "{nums[curr]} is an odd number";
for (i in [0..(sizeof nums -1)])
{
curr = i;
println("{evenOrOdd}");
}
ho l'uscita corretta:
1 is an odd number
2 is an even number
3 is an odd number
4 is an even number
5 is an odd number
6 is an even number
7 is an odd number
8 is an even number
9 is an odd number
10 is an even number
Chiaramente, l'incremento contatore nel il ciclo non viene considerato come un cambio di valore e il b l'espressione ound non viene valutata nuovamente.
Qualcuno può spiegare il concetto alla base di questo comportamento?
Grazie Tim. Spiegazione molto bella – Rahul