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

前端之家收集整理的这篇文章主要介绍了数组 – Swift数组可选类型和下标(Beta 3)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在关注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的最大变化是使数组真正按值传递,而不是仅仅在某种程度上按值传递,而不是其余的.

猜你在找的Swift相关文章