我需要定义一个 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 的所有元素限制为相同类型?
我有一个一维元组数组,我需要将其传递给定义为的函数
function f(a::Array{Tuple{Vararg{String}}, 1})
#do some processing
end
Run Code Online (Sandbox Code Playgroud)
每个元组可以有任意数量的字符串元素,但对于数组中的所有元组,元素的数量将相同。例如,该阵列可以看起来像[("x1","x2"),("y1","y2")]或[("x1","x2","x3"),("y1","y2","y3")]等等。因此VARARG {字符串}的这个用法。
现在,当我运行时f([("x1","x2"),("y1","y2")]),它会引发错误
“方法错误:没有方法匹配 f(::Array{Tuple{String,String},1})”
我应该如何修改函数定义以使其有效?
julia ×2