JuliaLang/julia

transcode(String, ::Vector{UInt}) is destructive

已关闭

#28,612 创建于 2018年8月12日

 (2 条评论) (0 个反应) (1 位负责人)Julia (5,773 个派生)batch import
arraysgood first issuestrings

仓库指标

星标
 (48,709 个星标)
PR 合并指标
 (平均合并 20天 6小时) (30 天内合并 157 个 PR)

描述

I'm seeing the following behaviour on 1.0:

julia> a = collect(transcode(UInt8, "abc"))
3-element Array{UInt8,1}:
 0x61
 0x62
 0x63

julia> b = transcode(String, a)
"abc"

julia> a
0-element Array{UInt8,1}

Note that this is only the case when a is a Vector{UInt8} (obtained through collect). When keeping the CodeUnits variable returned by the transcode(UInt8,...) call, there is no destruction:

julia> a = transcode(UInt8, "abc")
3-element Base.CodeUnits{UInt8,String}:
 0x61
 0x62
 0x63

julia> b = transcode(String, a)
"abc"

julia> a
3-element Base.CodeUnits{UInt8,String}:
 0x61
 0x62
 0x63

贡献者指南