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有typeTuple{Array{Any,2},Array{AbstractString,2}}
,source有typeArray{UInt8,1}
(未更改),source是空的(已更改)。原因是String(vec::Vector{UInt8})
不执行复制,而是拥有vec
(并对其进行变异)
现在你应该写:
out = DelimitedFiles.readdlm(copy(source),',',header=true)
我问了一个问题来澄清什么是预期的目标行为(复制或不复制)。许多thx!!这将是很好的文件是绝对明确的这一点。对于任何包中的任何函数;-)这是一个bug,将被修复并进行后端口。看见谢谢你的报道。