官术网_书友最值得收藏!

swap versus swapAt

The swap(_:_: ) method in Swift 3 works on "pass by reference principle" and swaps two elements of a given array on the spot. In pass by reference, actual memory addresses are used rather than values:

var integerArray = [1, 2, 4, 3, 5]
swap(integerArray [2], integerArray [3])

As you can see, the parameters are passed as in out parameters, which means the actual references or placeholder addresses are accessible directly inside the function. On the other hand, Swift 4’s swapAt(_:_:) works on “pass by value” principle and only the corresponding indices are passed to the function to be swapped:

integerArray.swapAt(2, 3)

The swap(_:_:) function will not be seen in Swift 4, because it will be deprecated and removed, and you have a couple of approaches to replace it. The first approach uses a temporary constant as follows:

let temp = a
a = b
b = temp

The second takes advantage of Swift's built in tuples, as follows:

(b, a) = (a, b)
主站蜘蛛池模板: 公安县| 蓬莱市| 武穴市| 仲巴县| 苍溪县| 海城市| 江津市| 东台市| 凤庆县| 拉孜县| 石嘴山市| 铅山县| 神农架林区| 张家川| 潍坊市| 武城县| 黄石市| 封开县| 武强县| 沁水县| 阿坝县| 洪湖市| 石家庄市| 西吉县| 登封市| 西青区| 辽阳市| 德令哈市| 晋州市| 犍为县| 文安县| 玉溪市| 阿拉善右旗| 连州市| 弋阳县| 昆明市| 青冈县| 镇原县| 全南县| 冕宁县| 彩票|