在这个特定的闭包语句中,= sign的功能是什么?

时间:2016-01-28 00:59:55

标签: swift closures

我是Swift的新手,正在尝试学习闭包的概念。我在网上看到了这段代码:

var sayHelloClosure: () -> () = {
    print("hello from closure")
}

当我删除=符号时,编译器输出错误消息:

Missing return in a function expected to return '() -> ()'

有人可以告诉我在这个特定背景下使用=吗?

1 个答案:

答案 0 :(得分:2)

让我们打破这句话:

var sayHelloClosure

好的,我们正在创建一个可变变量

: () -> ()

它的类型为() -> (),该函数没有返回void的参数。

=

它被设置为某种东西

{
    print("hello from closure")
}

那个东西是一个闭包(基本上是一个未命名的函数),它不带参数并且什么都不返回(void

基本上你现在有一个变量,它指向一个能够完成那些括号内的功能。