为什么要新增一个swapAt方法?

2020-03-22  本文已影响0人  醉看红尘这场梦

SE-0173中,为MutableCollection添加了一个新的方法:swapAt,它接受一个集合中的两个Index位置,并直接在原集合对象上交换对应位置的元素:

var numbers = [0, 1, 2, 3, 4, 5]
numbers.swapAt(0, 5)
// [5, 1, 2, 3, 4, 0]

而在Swift 3中,我们得这样使用swap

// In Swift 3
swap(&numbers[0], &numbers[5])
numbers // [0, 1, 2, 3, 4, 5]

之所以要添加swapAt方法,简单来说,是因为之前的swap方法违背了Swift Ownership Manifesto中的约定,在一个函数里,同一个变量不能传递给两个inout参数。因此,在未来的Swift版本里,swap方法会被标记为过期,让开发者过渡到swapAt方法。

上一篇下一篇

猜你喜欢

热点阅读