使用以下代码:
import copy
arr = copy.deepcopy(arr1)
现在尝试:
import Base.convert
abstract type MySequential end
struct MyFiniteSequence{T} <: MySequential
vec::NTuple{N,T} where N
end
Base.convert(MyFiniteSequence, r) = MyFiniteSequence{typeof(r)}((r,))
到目前为止,一切都很好。现在尝试进行隐式转换:
julia> convert(MyFiniteSequence, 1)
MyFiniteSequence{Int64}((1,))
我认为由于{T,N}注释的存在,但不确定如何转换convert的语法。有没有一种方法可以定义convert以获得从Int到struct的隐式转换?
答案 0 :(得分:2)
我相信在从julia convert
到0.7
的过渡中,对1.0
的隐式构造函数调用已被删除。但是只要您想要的话,您就可以定义一个调用convert
的构造函数:
julia> MyFiniteSequence(x) = Base.convert(MyFiniteSequence, x)
MyFiniteSequence
julia> MyFiniteSequence(1)
MyFiniteSequence{Int64}((1,))