Swift3 数组复制

数组在赋值或参数传递过程中会发生复制行为。数组属于值类型,值类型在赋值或参数传递时会发生复制行为,赋予的值或传递的参数是一个副本,而引用类型在赋值或参数传递时不会发生复制行为,赋予的值或传递的参数是一个引用。下面我们通过一个例子来介绍数组的复制。

1 |  var languageList: [String] = ["Swift","OC","Java","C"]

2 |  var copyList = languageList

3 |  languageList[0] = "iOS"

4 |  print("原来的值:\(languageList[0])")

5 |  print("拷贝的值:\(copyList[0])")

输出结果:原来的值:iOS

拷贝的值:Swift

上述代码,第1行我们定义了languageList数组。第2行将数组languageList复制给copyList。第3行将languageList数组的第一个元素的值改为“iOS”,第4行和第5行打印出languageList数组第一个值以及复制的数组copyList第一个元素的值。由运行结果我们可以看出,虽然languageList数组第一个值发生改变,但copyList第一个元素的值却没有发生变化。这是因为数组值引类型,复制之后不会改变值,原来的数组改变,拷贝过来的数组不会改变。同样复制后数组值改变也不会影响原来数组的值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,552评论 1 51
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,941评论 1 10
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,240评论 30 472
  • 学舞过程最重要的是节奏而不是动作 一个跳舞没多久的和跳十年舞的 做的一些动作不可能一样 所以动作做不出来老师的样子...
    DS舞蹈铛铛阅读 2,809评论 0 2
  • 我问:最近你好吗?你抬起迷茫的眼神,思索半天,说:就那样吧! 日子在这些波澜不惊的时光中流逝,你愈发地沉静,不好不...
    绾茜阅读 306评论 0 0