问题:基于以下信息和讨论:inout参数是通过引用传递还是通过拷入拷出?
基于以下SO线程,通过引用传递inout关键字标记的函数参数:
我们注意到最顶层的两个线程是 Swift 2.0 之前的;我在 SO 上找不到关于该主题的任何更新的讨论(除了有点相关的第三个线程链接)。
但是,根据 Apple 的文档(据我所知),由inout关键字标记的函数参数是通过copy-in copy-out(或按值调用结果)传递的
传入传出参数如下:
当函数被调用时,参数的值被复制。在函数体中,副本被修改。当函数返回时,副本的值被分配给原始参数。此行为称为拷入拷出或按值结果调用。...
... 您可以通过将 inout 关键字放在其参数定义的开头来编写输入输出参数。一个输入输出参数有一个传入函数的值,被函数修改,然后传回函数外来替换原来的值。...
现在我自己的例子试图调查这个:
struct MyStruct {
private var myInt: Int
mutating func increaseMyInt() {
myInt++
}
func …Run Code Online (Sandbox Code Playgroud)