在Swift中使用for-in创建字符串数组

Sen*_*r14 2 ios swift

我正在学习Swift,并找到了一个精彩的教程,解释了如何创建纸牌游戏.重点是我们使用14张牌卡片,图像文件名为card0,card1 ......等.

因此,我们必须使用这些文件名创建字符串数组.老师用硬编码做的

var cardNamesArray:[String] = ["card1","card2","card3","card4","card5","card6","card7","card8","card9","card10","card11","card12","card13"]
Run Code Online (Sandbox Code Playgroud)

我想用for-in做.但是,当我尝试这样做时:

for i in 0...13 {
var cardNamesArray:String = [String(format: "card%i", i)]
}
Run Code Online (Sandbox Code Playgroud)

我在XCode上遇到错误......"预期声明".

你能否指出我错在哪里,或者是否还有其他方法可以做到.

Kri*_*lci 5

这是解决方案.首先需要在for循环之前初始化一个空字符串数组.然后从1到13迭代,而不是0到13,因为它将包含0.然后将字符串附加到数组.您的字符串格式不正确,请注意在Swift中格式化它的方法.

var cardNamesArray = [String]()

for i in 1...13 {
    cardNamesArray.append("card\(i)")
}
Run Code Online (Sandbox Code Playgroud)


ske*_*ech 5

使用map()可以这样写:

var cardNamesArray = (0...13).map{"card\($0)"}
Run Code Online (Sandbox Code Playgroud)

  • Int数组映射到String数组。长格式可以这样写:`let intArray = [Int](0 ... 13); var cardNamesArray = intArray.map {“ card \($ 0)”}`,但也可以将其全部串在一起。 (2认同)