如何将自定义的结构体实例转为任意类型, 并不进行拷贝?

P.S: 有朋友误以为是类型对象的转换, 其实是数据的转换. 为了避免误导大家, 将问题 自定义的结构体 改为 自定义的结构体实例.

Struct{T} => Struct{Any}

x = Int[1]
isimmuatble(x) # => false, so `===` compare by reference which checks if lhs and rsh are same object.
x === convert(Vector{Any}, x) # => true 

自定义的数据类型如何实现这个?

额,我不太清楚这样做的副作用,但是似乎可以这样:

julia> struct Foo{T}
x::T
end

julia> y = typeof(Foo(1))
Foo{Int64}

julia> y.parameters = Core.svec(Any)
svec(Any)

julia> typeof(Foo(1))
Foo{Any}

这种问题还是去英文社区能得到权威的回答。

emmm, 不是转类型, 是转数据啊…

英文已问Here

无法实现。
how-to-convert-user-defined-struct-t-to-struct-any-without-redundant-copy/13450/4