【发布时间】:2016-07-20 10:46:30
【问题描述】:
根据 Swift 3 中 inout 的用法,我有一个问题。
据我了解,inout 使用起来非常昂贵。
还有一个问题,什么时候以及为什么使用inout 声明更好?
正则函数:
func double(input: Int) {
var input = input
input = input * 2
}
inout 声明使用:
func double(input: inout Int) {
input = input * 2
}
【问题讨论】:
-
inout is quite expensive operation for use为什么这么说? -
我编辑我的答案。昂贵的来源是这个链接realm.io/news/appbuilders-daniel-steinberg-whats-new-swift-3。第0035节
-
现在您已经编辑了:您的第一个示例什么都不做。
input是一个副本。如果要修改原始文件,请使用带有 inout 的第二个示例。这不一样! -
所以它只是语法糖,可以修改输入属性而不重新分配?
-
看看stackoverflow.com/a/34486250/1187415,它有一个引用和指向 Swift 参考的链接。 “简单变量”只是通过引用传递。