
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的最大变化是使数组真正按值传递,而不是仅仅在某种程度上按值传递,而不是其余的.
总结以上是内存溢出为你收集整理的数组 – Swift数组可选类型和下标(Beta 3)全部内容,希望文章能够帮你解决数组 – Swift数组可选类型和下标(Beta 3)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)