如何定义一个 Vector 以使 Julia 中的所有元素都属于同一类型?

Web*_*Dev 5 julia

我需要定义一个 Vector 以便其中的所有元素都需要是相同的类型,尽管类型本身可以是任何类型。我尝试了以下方法:

["1", 2] isa AbstractVector{T} where T <: Any
Run Code Online (Sandbox Code Playgroud)

但这会返回true

以下在这种情况下有效并false根据需要正确返回:

["1", 2] isa AbstractVector{T} where T <: Union{AbstractString, Number}
Run Code Online (Sandbox Code Playgroud)

但是,我不想将类型限制为仅字符串、数字等。那么,尽管类型本身可以灵活,但我还能如何将 Vector 的所有元素限制为相同类型?

xia*_*dai 1

["2", 2]是类型Vector{Any}并且T <: Anytrue因为设置T = Any给出了Any <: Any它应该评估为true.

“1”是 aString并且String <: AbstractStringtrue。但 Julia 的类型系统只能这样工作

T{S} <: T'{S}如果 则为真,但如果即使 则不T <: T'为真。我不知道类型论中的技术术语,但应该在这里详细说明https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)T{S} <: T{S'}S <: S'