On 03/01/2018 11:43 PM, Jamie wrote:
So if I do
     arr[0 .. 1][0] = 3;
shouldn't this return
    [[3, 0, 0], [0, 0, 0]] ? Because I'm taking the slice arr[0 .. 1], or arr[0], which is the first [0, 0, 0]?

arr[0 .. 1] is not the same as arr[0].

arr[0 .. 1] is not the first element of arr; it's an array that contains the first element of arr. It's not [0, 0, 0]; it's [[0, 0, 0]]. It's not an int[]; it's an int[][].

Then assigning the first element to 3?
instead it returns
     [[3, 3, 3], [0, 0, 0]]

Since arr[0 .. 1] is [[0, 0, 0]], arr[0 .. 1][0] is [0, 0, 0]. Assigning 3 to that means assigning to all of its values. And so you get [3, 3, 3].

Reply via email to