|
1
13
我认为函数类型最适合 the definition of a reference type :
然而,我不认为这是一个特别有用的区别,在我看来,将函数作为值类型(如 technically speaking they consist of a pointer and a reference 更有用的区别是函数具有 引用语义 ,这意味着可以观察实例之间的某种共享状态。这与引用类型不同,值类型可能具有引用语义,而引用类型可能具有值语义。 例如,这里有一个具有引用语义的值类型:
二者都
虽然两者都有
那么,为什么函数有引用语义呢?因为它们可以包含捕获的变量,这是可以观察到的共享可变状态。 例如:
|
|
|
3
3
闭包和函数是引用类型 苹果说:每当你给一个常量或变量赋值一个函数或闭包, 实际上,您正在将该常量或变量设置为对函数或闭包的引用。
让我们试试看这个例子:
首先,我将创建一个函数,该函数以整数作为参数,返回一个名为
现在incrementByTen将引用这个函数的结果,换句话说,引用一个闭包
结果是10还是20? 是的,你说到点子上了:)会的。因为 闭包和函数是引用类型 正如我一开始说的。
|
|
|
Tom · SwiftUI.sheet导致背景白色闪烁 1 年前 |
|
|
Danil · 种子/填充核心数据的最佳实践?[关闭] 1 年前 |
|
|
Robin · LazyVGrid项目预计不会击中测试区域 1 年前 |
|
|
Saurabh Saini · 结构下标 1 年前 |
|
|
Alex Smith · 移动到下一个视图控制器后如何显示警报? 1 年前 |