我是Swift的新手,正在尝试学习闭包的概念。我在网上看到了这段代码:
var sayHelloClosure: () -> () = {
print("hello from closure")
}
当我删除=符号时,编译器输出错误消息:
Missing return in a function expected to return '() -> ()'
有人可以告诉我在这个特定背景下使用=吗?
答案 0 :(得分:2)
让我们打破这句话:
var sayHelloClosure
好的,我们正在创建一个可变变量
: () -> ()
它的类型为() -> ()
,该函数没有返回void
的参数。
=
它被设置为某种东西
{
print("hello from closure")
}
那个东西是一个闭包(基本上是一个未命名的函数),它不带参数并且什么都不返回(void
)
基本上你现在有一个变量,它指向一个能够完成那些括号内的功能。