我知道objective c中(void)的含义,但我想知道这段代码的含义是什么:
(Void) -> (Void)
在斯威夫特。
6qftjkof1#
() -> ()仅仅意味着Void -> Void--一个不接受参数也没有返回值的闭包。在Swift中,Void是空元组()的类型别名。typealias Void = ()空元组类型。这是未指定显式返回类型的函数的默认返回类型。举个例子
() -> ()
Void -> Void
typealias Void = ()
let what1: Void->Void = {}
或
let what2: Int->Int = { i in return i }
都是不同类型的有效表达式,所以print的类型是()->() (aka Void->Void),严格地说,printThat的类型是(() -> ()) -> () (aka (Void->Void)->Void
()->() (aka Void->Void)
(() -> ()) -> () (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: ()? */
rjee0c152#
与Swift平均值相同。无参数,无返回值。
bgtovc5b3#
Void是一种数据类型,在很多编程语言中都很常见,在Swift的标准库中,它只是一个空元组,它用于函数不返回任何值,当定义一个函数时,如果你不指定返回类型,你会得到一个返回Void的函数,这是它在标准库中的定义。公共类型别名Void =()您可以使用Void来声明函数、方法或闭包的类型...请记住,that()可以表示两种情况:
3条答案
按热度按时间6qftjkof1#
() -> ()
仅仅意味着Void -> Void
--一个不接受参数也没有返回值的闭包。在Swift中,Void是空元组()的类型别名。
typealias Void = ()
空元组类型。这是未指定显式返回类型的函数的默认返回类型。
举个例子
或
都是不同类型的有效表达式,所以print的类型是
()->() (aka Void->Void)
,严格地说,printThat的类型是(() -> ()) -> () (aka (Void->Void)->Void
Void函数与Int函数等没有太多意义... Swift中的每个函数都有一个类型,由函数的参数类型和返回类型组成。
最后,关于“void”函数,请注意这两个函数签名之间没有区别:
奇怪的是,您可以有一个可选的空元组类型,因此下面的函数与上面的两个不同:
rjee0c152#
与Swift平均值相同。无参数,无返回值。
bgtovc5b3#
Void是一种数据类型,在很多编程语言中都很常见,在Swift的标准库中,它只是一个空元组,它用于函数不返回任何值,当定义一个函数时,如果你不指定返回类型,你会得到一个返回Void的函数,这是它在标准库中的定义。
公共类型别名Void =()
您可以使用Void来声明函数、方法或闭包的类型...请记住,
that()可以表示两种情况: