博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift Generic Array 'not identical' error
阅读量:5090 次
发布时间:2019-06-13

本文共 1272 字,大约阅读时间需要 4 分钟。

Arrays in Swift are value types. That means that data is copied when passed into your exchangemethod, but you are trying to modify the copy to affect the original version. Instead you should do one of two things:

1. Define data as an inout parameter:

func exchange
(inout data:[T], i:Int, j:Int)

Then when calling it you have to add an & before the call:

var myArray = ["first", "second"] exchange(&myArray, 0, 1)

2. Return a copy of the Array (recommended)

func exchange
(data:[T], i:Int, j:Int) -> [T] { var newData = data newData[i] = data[j] newData[j] = data[i] return newData }

I recommend this way over the in-out parameter because in-out parameters create more complicated state. You have two variables pointing to and potentially manipulating the same piece of memory. What if exchange decided to do its work on a separate thread? There is also a reason that Apple decided to make arrays value types, using in-out subverts that. Finally, returning a copy is much closer to which is a promising direction that Swift can move. The less state we have in our apps, the fewer bugs we will create (in general).

http://stackoverflow.com/questions/24784252/swift-generic-array-not-identical-error

转载于:https://www.cnblogs.com/jinks/p/3952129.html

你可能感兴趣的文章
bzoj3529: [Sdoi2014]数表
查看>>
SSH三大框架 整合必备jar包
查看>>
什么是电子商务?电子商务面临的几个关键问题及解决办法?电子商务的核心是什么?B2C电子商务运营的核心是什么 ?...
查看>>
Jsp抓取页面内容
查看>>
AJAX与servlet的组合,最原始的
查看>>
大三上学期软件工程作业之点餐系统(网页版)的一些心得
查看>>
[LOJ#2326]「清华集训 2017」简单数据结构
查看>>
asp.net mvc 5框架揭秘(文摘)
查看>>
ABP框架系列之二十三:(EF-MySql-Integration-EF-MySql-集成)
查看>>
杭州电子科技大学2018年自命题科目考试大纲(数据结构与组成原理)
查看>>
centos 7 下使用jexus 配置ASP.NET Core
查看>>
MySQL数据库 DML 数据操作语言
查看>>
跟我学习dubbo-使用Maven构建Dubbo服务的可执行jar包(4)
查看>>
SPCAMLEditor使用系列(1)--利用SPCAMLEditor,10分钟打造一个在线视频播放库
查看>>
ios开发 <AppName>-Prefix.pch文件的用法详解
查看>>
小鸡啄米问题求解
查看>>
13-调试Dockerfile
查看>>
python3.4中自定义数组类(即重写数组类)
查看>>
【线性代数】3-2:零空间(Nullspace)
查看>>
Solr 03 - 解读Solr的schema.xml文件 (Solr的模式设计与优化)
查看>>