函数重载使用不明确 - Xcode 12.5

Function overloading ambiguous use - Xcode 12.5

当我定义枚举时:

enum Test: CGFloat {
    case zero
}

和两个类似于以下的函数:

func test(_ param: CGFloat) { 
    print("param - \(param)") 
}

func test(_ param: Test) { 
    print("param - \(param.rawValue)") 
}

我尝试使用它们时遇到的问题:

test(Test.zero) <- prints "param - 0"
test(.zero) <- error: ambiguous use of .zero

虽然我知道编译器与 .zero 的两个定义发生冲突,但我试图查明 Xcode 12.5 发行说明中的​​更改位置。也许有人可以指出我正确的方向?看起来它在 12.4 中工作。

注:

可以通过以下方式修复:

可能是

的次要后果

Implicit member expressions now support chains of member accesses. (57295228)

您可能会因为现有代码损坏而提交错误,但它有一种极端情况的感觉,所以它可能永远不会起作用。无论如何,我敢打赌说 Test.zero 会加快编译速度。正如您的论坛 link 所示,这种类型检查很复杂。