【发布时间】:2019-04-03 16:45:28
【问题描述】:
最近开始学习Swift,现在遇到问题(下面代码会插入):
我从 3 个数组创建了一个结构数组。在创建结构的实例时,我需要通过随机(我理解的 randomElement)来完成 - 所有 3 个参数都必须是唯一的。如何检查函数的唯一性?
arrayOfHumans = createRandomHuman()
struct Human {
let name: String
let surname: String
let age: String
var email: String
}
var arrayOfHumans = [Human] ()
var humans: [Human] = []
let nameA = ["Tim", "Mike", "Stan"]
let surnameA = ["Burk", "Sims", "Stoch"]
let ageA = ["12", "30", "25"]
let emailA = ["one@live.com", "two@gmail.com", "three@outlook.com"]
func createRandomHuman() -> [Human] {
for _ in 1...3 {
if nameA.isEmpty == false {
let human = Human(name: nameA.randomElement()!,
surname: surnameA.randomElement()!,
age: ageA.randomElement()!,
email: emailA.randomElement()!)
humans.append(human)
}
}
return humans
}
实际结果:
first Struct {
name: Tim
surname: Sims
age: 12
email: three@outlook.com
}
second Struct {
name: Mike
surname: Stoch
age: 25
email: one@live.com
}
third Struct {
name: Stan
surname: Burk
age: 30
email: two@gmail.com
}
【问题讨论】:
-
你想让所有 4 个属性保持唯一吗?
-
是的,所有人都是独一无二的
-
如果您只想使用每个元素一次,您应该打乱数组并循环遍历它们,而不是每次都选择一个随机元素。
-
您应该首先定义一个唯一性规则。姓名、姓氏和年龄很常见。
标签: arrays swift random struct