首页 > 解决方案 > 容器值的类型层次结构令人困惑

问题描述

Integer是超类型的Int64。因此,以下应该工作

function foo(a::Integer)
    return 42
end

foo(2)

确实如此:

42

使用的方法是

@which foo(2)
foo(a::Integer)

但是为什么数组/向量不可能相同呢?

function bar(a::Vector{Integer})
    return 42
end

bar([2, 3])
ERROR: MethodError: no method matching bar(::Array{Int64,1})

标签: julia

解决方案


推荐阅读