如何在Swift中对数组进行洗牌?
在这篇文章中,您将学习如何在Swift语言中对数组进行洗牌。
在Swift中,您可以使用shuffle()和shuffled()方法来对数组元素进行洗牌。
shuffle()
shuffle()方法会原地对集合的元素进行洗牌,因此原始数组会被修改。
shuffled()
如果您想创建一个洗牌后的数组副本而不是修改原始数组,可以使用Sequence协议中的shuffled()方法。
这里是一个使用shuffle()对数组元素进行洗牌的示例
算法
- 步骤1 – 创建一个输入数组
-
步骤2 – 在输入数组上调用shuffle()函数
-
步骤3 – 这个方法会修改原始数组
示例
import Foundation
var languages: [String] = ["PHP", "Java", "Swift", "Python", "JavaScript", "GoLang"]
print("Original array = ",languages)
languages.shuffle()
print("Shuffle array = ",languages)
输出
Original array = ["PHP", "Java", "Swift", "Python", "JavaScript", "GoLang"]
Shuffle array = ["Java", "GoLang", "JavaScript", "Python", "Swift", "PHP"]
请注意元素的顺序是随机的。
以下是使用shuffled()对数组元素进行洗牌的示例
算法
- 步骤1 – 创建一个输入数组
-
步骤2 – 在输入数组上调用shuffled()函数
-
步骤3 – 此方法返回一个新的数组
示例
import Foundation
var languages: [String] = ["PHP", "Java", "Swift", "Python", "JavaScript", "GoLang"]
print("Original array = ",languages)
let shuffledLanguages = languages.shuffled()
print("Shuffle array = ",shuffledLanguages)
输出结果
Original array = ["PHP", "Java", "Swift", "Python", "JavaScript", "GoLang"]
Shuffle array = ["PHP", "GoLang", "JavaScript", "Swift", "Python", "Java"]
注意元素的顺序是随机的。
结论
shuffle()和shuffled()都使用Foundation框架提供的默认随机数生成器。如果您需要对随机化过程进行更多控制,可以使用其他随机化方法或创建自己的随机数生成器。