Julia DelimitedFiles.readdlm(source,…)修改source,这是真的吗?在文档/定义中,这是在哪里解释的?

Julia DelimitedFiles.readdlm(source,…)修改source,这是真的吗?在文档/定义中,这是在哪里解释的?,julia,Julia,惊奇地发现DelimitedFiles.readdlm(source,…)更改了source输入参数。我很惊讶,因为我在官方文件中找不到这方面的迹象。这只是朱莉娅的易变性的标准假设吗?我认为可能改变输入参数的somefunction会用somefunction来表示这一点(将!添加到函数名) i使用的功能如下: out = DelimitedFiles.readdlm(source,',',header=true) 在调用之前,源代码具有类型数组{UInt8,1},并具有多个元素。调用后,ou

惊奇地发现
DelimitedFiles.readdlm(source,…)
更改了
source
输入参数。我很惊讶,因为我在官方文件中找不到这方面的迹象。这只是朱莉娅的易变性的标准假设吗?我认为可能改变输入参数的
somefunction
会用
somefunction来表示这一点(将
添加到函数名)

i使用的功能如下:

out = DelimitedFiles.readdlm(source,',',header=true)

在调用之前,源代码具有类型
数组{UInt8,1}
,并具有多个元素。调用后,out有type
Tuple{Array{Any,2},Array{AbstractString,2}}
,source有type
Array{UInt8,1}
(未更改),source是空的(已更改)。

原因是
String(vec::Vector{UInt8})
不执行复制,而是拥有
vec
(并对其进行变异)

现在你应该写:

out = DelimitedFiles.readdlm(copy(source),',',header=true)

我问了一个问题来澄清什么是预期的目标行为(复制或不复制)。

许多thx!!这将是很好的文件是绝对明确的这一点。对于任何包中的任何函数;-)这是一个bug,将被修复并进行后端口。看见谢谢你的报道。