【发布时间】:2017-05-06 00:33:19
【问题描述】:
我有 3 个动物阵列:
let mammals = ["Dog", "Cat", "Bear"]
let fish = ["Clownfish", "Seahorse", "Scorpion Fish"]
let reptiles = ["Chameleon", "Snake", "Lizard"]
一个按钮随机生成一个动物,然后将它附加到一个 allAnimals 数组中。我希望能够确定字符串(动物)来自哪个数组。
我尝试过使用
allAnimals.contains()
但是,它明确地将 var 作为参数。我可以做 allAnimals.contains("Seahorse") 就好了。但我需要能够检查所有数组。
我也尝试过遍历数组。
for i in allAnimals {
if i.contains(mammals){ print("Came from the Mammal array") }
else if i.contains(fish){ print("Came from the Fish array") }
else if i.contains(reptiles){ print("Came from the Reptiles array") }
}
这引发了错误:
Cannot convert value of type '[String]' to expected argument type 'String'
如何确定随机字符串来自哪个数组?
【问题讨论】:
-
您可以为每种类型创建一个结构,然后检查它是哪种类型。您还可以为每种类型创建一个带有关联值的枚举。
-
非常感谢这里的所有建议,伙计们。 @vadian 的解决方案对我来说效果很好,但看到其他可以完成的方法对我很有帮助。
标签: arrays swift loops contains