Swift数组引用和复制

时间:2016-07-31 07:37:42

标签: arrays swift reference assign

我对Swift很新,Obj-c直到现在才是我的首选语言,但我决定切换。我读了一本关于Swift的书,我对阵列分配操作有疑问。

我读到数组通常是通过引用分配的,直到你执行一些改变元素数的操作。但问题是:

C ++旧代码

    int a[10];
    int b[10];

    // init a and b
    int* p; 

    if(...) 
       p = a;
    else 
       p = b;

    // do something with p

此时ab(取决于if)会被修改。

上面的例子适用于Swift,因为没有做任何操作来改变数组的长度,但问题是:有没有办法在Swift中做一些事情,即使你改变长度也使用引用?

此论坛中的许多人建议重新分配:

    var a: [Int] = ...
    var b: [Int] = ...

    if ... {
       c = a
    }
    else {
       c = b
    }
    // do something with c, maybe extend c

然后

    if ... {
       a = c
    }
    else {
       b = c
    }

但是......我发现这个双重检查(拖曳if s)令人讨厌和丑陋...我不想相信Swift没有一些像指针一样的操作符: - )

0 个答案:

没有答案