加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数组 – Swift数组可选类型和下标(Beta 3)

发布时间:2020-12-14 05:20:53 所属栏目:百科 来源:网络整理
导读:我正在关注2014年WWDC教程408:使用XCode Beta 3的 Swift Playgrounds(30分钟).自Beta 2以来,Swift语法已发生变化. var data = [27,46,96,79,56,85,45,34,2,57,29,66,99,65,40,58,87,64]func exchangeT(data: [T],i: Int,j: Int) { let temp = data[i] data[
我正在关注2014年WWDC教程408:使用XCode Beta 3的 Swift Playgrounds(30分钟).自Beta 2以来,Swift语法已发生变化.
var data = [27,46,96,79,56,85,45,34,2,57,29,66,99,65,40,58,87,64]

func exchange<T>(data: [T],i: Int,j: Int) {
    let temp = data[i]
    data[i] = data[j]  // Fails with error '@lvalue $T8' is not identical to 'T'
    data[j] = temp     // Fails with error '@lvalue $T5' is not identical to 'T'
}

exchange(data,2)
data

为什么我不能以这种方式修改可变整数数组?

因为子例程参数是使用let隐式定义的,因此不可变.尝试将声明更改为:
func exchange<T>(inout data: [T],j: Int) {

和调用:

exchange(&date,2)

您也可以使用var,但这只允许在子例程中修改数组. beta 3的最大变化是使数组真正按值传递,而不是仅仅在某种程度上按值传递,而不是其余的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读