相关疑难解决方法(0)

使用inout关键字:是通过引用传递的参数还是通过copy-in copy-out(/call by value result)

问题:基于以下信息和讨论: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)

swift2 inout

5
推荐指数
1
解决办法
1016
查看次数

标签 统计

inout ×1

swift2 ×1