当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia isambiguous用法及代码示例


用法:

Base.isambiguous(m1, m2; ambiguous_bottom=false) -> Bool

确定两个方法m1m2 对于某些调用签名是否可能不明确。该测试是在相同函数的其他方法的上下文中执行的;单独来看,m1m2 可能有歧义,但如果已定义解决歧义的第三种方法,则返回 false 。或者,可以单独对m1m2 进行排序,但如果无法使用它们对第三种方法进行排序,则它们可能会一起导致歧义。

对于参数类型,ambiguous_bottom 关键字参数控制 Union{} 是否算作类型参数的模棱两可的交集 - 当 true 时,它被认为是模棱两可的,当 false 不是。

例子

julia> foo(x::Complex{<:Integer}) = 1
foo (generic function with 1 method)

julia> foo(x::Complex{<:Rational}) = 2
foo (generic function with 2 methods)

julia> m1, m2 = collect(methods(foo));

julia> typeintersect(m1.sig, m2.sig)
Tuple{typeof(foo), Complex{Union{}}}

julia> Base.isambiguous(m1, m2, ambiguous_bottom=true)
true

julia> Base.isambiguous(m1, m2, ambiguous_bottom=false)
false

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.isambiguous — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。