微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift – 无法使用.last修改多维数组

这是我的代码
var states:[[[Int]]] // I create an empty multidimensional array
states = [[[0,0],[0,0]]] // I give it a value


// Why does here it doesn't work ? ('@ivalue $T11' is not identical to 'Int')
states.last![0][0] = 1

// And here it does ?
states[0][0][0] = 1

我不知道为什么它会在一个案例中引发错误而在另一个案例中不会引发错误?我以为它会做同样的事情……

last返回最后一个元素,但不允许您设置新值.实际上,该属性实现了get only:
/// The last element,or `nil` if the array is empty
var last: T? { get }

所以你不能用它来修改数组.

请注意,如果返回的元素是复合值类型(即结构,如数组或字典),则返回存储在数组中的实际元素的副本.因此,对最后一个或任何属性和数据返回的元素所做的任何更改仅在该副本上执行,而不会影响原始数组.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐