在Julia中传递返回参数

use*_*004 4 pass-by-reference julia

如果Julia函数返回一个数组,是返回引用还是复制?

function pass(A::Matrix)
   return A
end
Run Code Online (Sandbox Code Playgroud)

一个真实的例子是reshape:

reshape(A, dims) 使用与给定数组相同的数据创建一个数组,但具有不同的维度.特定类型的阵列的实现可以选择是复制还是共享数据.

实现如何确定是复制还是共享数据?

msc*_*uer 7

pass上面的函数通过引用返回,http://julia.readthedocs.org/en/latest/manual/arrays/.

这个reshape例子还有一点.对于完整数组,重新整形的数组是一个共享相同数据的数组对象.但请记住,有很多专门的数组类型.文档警告你不要依赖它,因为例如对于不可变固定大小数组的未来实现,可以使用不同的重塑机制.