在Swift中void ->(void)是什么意思?

n3ipq98p  于 2023-03-11  发布在  Swift
关注(0)|答案(3)|浏览(274)

我知道objective c中(void)的含义,但我想知道这段代码的含义是什么:

(Void) -> (Void)

在斯威夫特。

6qftjkof

6qftjkof1#

() -> ()仅仅意味着Void -> Void--一个不接受参数也没有返回值的闭包。
在Swift中,Void是空元组()的类型别名。
typealias Void = ()空元组类型。
这是未指定显式返回类型的函数的默认返回类型。
举个例子

let what1: Void->Void = {}

let what2: Int->Int = { i in return i }

都是不同类型的有效表达式,所以print的类型是()->() (aka Void->Void),严格地说,printThat的类型是(() -> ()) -> () (aka (Void->Void)->Void

Void函数Int函数等没有太多意义... Swift中的每个函数都有一个类型,由函数的参数类型和返回类型组成。

最后,关于“void”函数,请注意这两个函数签名之间没有区别:

func myFunc(myVar: String)        // implicitly returns _value_ '()' of _type_ ()
func myFunc(myVar: String) -> ()

奇怪的是,您可以有一个可选的空元组类型,因此下面的函数与上面的两个不同:

func myFunc(myVar: String) -> ()? {
    print(myVar)
    return nil
}

var c = myFunc("Hello") /* side effect: prints 'Hello'
                       value: nil
                       type of c: ()?              */
rjee0c15

rjee0c152#

与Swift平均值相同。无参数,无返回值。

bgtovc5b

bgtovc5b3#

Void是一种数据类型,在很多编程语言中都很常见,在Swift的标准库中,它只是一个空元组,它用于函数不返回任何值,当定义一个函数时,如果你不指定返回类型,你会得到一个返回Void的函数,这是它在标准库中的定义。
公共类型别名Void =()
您可以使用Void来声明函数、方法或闭包的类型...请记住,
that()可以表示两种情况:

  • ()可以是类型-空元组类型,与Void相同。
  • ()可以是一个值--一个空元组,与Void()相同。

相关问题