當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。