Юлия функция аргумент по ссылке
Документы говорят
У Юлии все аргументы функций передаются по ссылке.
поэтому я был довольно удивлен, увидев разницу в поведении этих двух функций:
function foo!(r::Array{Int64})
r=r+1
end
function foobar!(r::Array{Int64})
for i=1:length(r)
r[i]=r[i]+1
end
end
вот неожиданно другой вывод:
julia> myarray
2-element Array{Int64,1}:
0
0
julia> foo!(myarray);
julia> myarray
2-element Array{Int64,1}:
0
0
julia> foobar!(myarray);
julia> myarray
2-element Array{Int64,1}:
1
1
если бы массив передавался по ссылке, я бы ожидал foo! изменить нули на единицы.