当它也具有返回值的重载版本时,如何正确调用非返回值Swift函数?

axl*_*411 2 swift

说我有以下函数定义:

func doSomething() {
    print("do something")
}

func doSomething() -> Int {
    return 1
}
Run Code Online (Sandbox Code Playgroud)

如果要这样做,我想调用一个没有返回值的值:

doSomething()
Run Code Online (Sandbox Code Playgroud)

我得到了错误Ambiguous use of 'doSomething()'

我必须这样做:

let _:Void = doSomething()
Run Code Online (Sandbox Code Playgroud)

使编译器满意,但这看起来并不优雅,那么如何优雅地做到这一点呢?

Chr*_*ers 5

如您所见,您可以引导类型推断使用Void通过提供类型返回的重载。为类型推断提供类型的另一种方法是使用as关键字。就您而言,它将显示为doSomething() as Void