jzr
#1
```
julia> x = [1,2,3]
3-element Vector{Int64}:
1
2
3
```

In this case they are the same. Are they always the same? What is the difference?

```
julia> x .= [10, 20, 30]
3-element Vector{Int64}:
10
20
30
julia> x[:] = [11, 21, 31]
3-element Vector{Int64}:
11
21
31
```

I am not sure the second form (namely `x[:] = ...`

) works with broadcast fusion.

5 Likes

One difference is that `x[:] = ...`

treats `x`

as a vector, while `x .= ...`

uses the actual shape of `x`

:

```
julia> x = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> x .= [10, 20, 30, 40]
ERROR: DimensionMismatch("array could not be broadcast to match destination")
[...]
julia> x[:] = [10, 20, 30, 40]
4-element Vector{Int64}:
10
20
30
40
julia> x
2×2 Matrix{Int64}:
10 30
20 40
```

7 Likes