如何在Julia中定义一个Vector以使所有元素具有相同的类型?

时间:2019-05-25 07:13:18

标签: julia

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

["1", 2] isa AbstractVector{T} where T <: Any

但这返回true

在这种情况下,以下方法可以正常工作,并根据需要正确返回false

["1", 2] isa AbstractVector{T} where T <: Union{AbstractString, Number}

但是,我不想将类型限制为仅字符串,数字等。因此,尽管类型本身可以灵活设置,但我还能如何将Vector的所有元素都限制为同一类型呢?

1 个答案:

答案 0 :(得分:1)

["2", 2]的类型为Vector{Any},而T <: Any的类型为true,因为设置T = Any会得到Any <: Any,其值应为true

“ 1”是String,而String <: AbstractStringtrue。但是朱莉娅的类型系统只能像这样

T{S} <: T'{S}T <: T'下为true,在T{S} <: T{S'}下为S <: S',但不是。我不知道类型理论中的技术术语,但应在此处https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)

中进行详细说明