精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品开源,禁止转载和任何形式的非法内容使用,违者必究
C和C++里,对数组非0项用取地址&可以形成偏移子数组, 比如int a[10],a是数组,&a[3]也是数组,只不过后者从第4项开始,这是和指针结合灵活使用的形式。
比如有函数void a(int*p);int abc[10],可以用a(abc)也可以用a(&abc[3]),非常方便。在C和C++里指针可以当数组用。
但在Swift里,没有指针,想直接使用偏移子数组,就麻烦了,用ArraySlice的话,是互相独立的,不能达到修改一个,原来数组也修改的目的,
多加个偏移参数可以解决问题,只不过导致了复杂性,比如传参数时,有个数组参数,还要有个偏移参数,两者结合才行。
func a(abc:Array<Int>,offseta:Int)
问题的本质是Array是值类型,如果是引用类型,估计会有些解决办法。