什么是swift中的'()'类型?

Sha*_*har 5 swift

我收到一个传递类型参数的事件().

这是一个空元组..?

我指的是这种表达方式:

let x = ()

Mar*_*n R 5

()既是一个类型(也是Void空元组类型的类型别名),又是该类型的唯一。所以

let x = ()
Run Code Online (Sandbox Code Playgroud)

定义为类型(又名)x的常量属性值为。 ()Void ()

等效的语句是

let x:() = ()
let x:Void = ()
Run Code Online (Sandbox Code Playgroud)

不是

let x = Void // error: expected member name or constructor call after type name
Run Code Online (Sandbox Code Playgroud)

因为Void是类型而不是值。

当定义没有参数和/或没有返回值的函数类型时,似乎一致认为使用()空参数列表并且Void没有返回值。例如,这可以在 UIKit 完成处理程序中看到,或者在提交到 GCD 调度队列的执行块中看到,例如

func sync(execute block: () -> Void)
Run Code Online (Sandbox Code Playgroud)

  • A 会补充说,定义没有参数且没有返回值的函数的共识是“() -> Void”,尽管“() -> ()”和“(Void) -> Void”都是可能的。 (2认同)