Skip to main content
 首页 » 操作系统

ios之快速函数

2024年01月01日41zfyouxi

我正在学习 Swift,但在理解函数的工作原理时遇到了问题。 假设我有一个简单的函数:

func sayHello() { 
  println("hello there") 
} 

而且我可以通过这种方式将此函数分配给变量或常量:

var hello = sayHello 

所以现在变量 hello 是可以这样写的函数类型:

var hello:() -> () = sayHello 

现在我可以通过键入来运行/执行(这样的措辞合适吗?)sayHello 函数:

hello() 

它打印我的输出“你好”

问题是这之间有什么区别:

var hello1 = sayHello() 
hello1 // it prints out hello there string 

还有:

var hello2 = sayHello 
hello2() // it prints out hello there string as well 

请您参考如下方法:

简而言之,

hello1是执行 sayHello 的结果.但是因为你的函数不返回任何东西,它的值将是 Void .

hello2另一方面是对函数 sayHello 的引用.它的类型是 () -> () .这就是为什么您需要执行它(示例中尾随的“()”)以获得结果。

这就是我们所说的 First Class Function 。其中一个特点是函数可以像变量一样传递和使用。