为什么UInt32(stringArray.count)在一个函数中计数错误,但在swift中单独更正?

为什么UInt32(stringArray.count)在一个函数中计数错误,但在swift中单独更正?,swift,count,swift-playground,uint32,Swift,Count,Swift Playground,Uint32,为什么这个代码计算6个元素,而在swift游乐场计算9个元素是错误的 var stringArray = ["1", "2", "3", "4", "5", "6"] for var i = 0; i < 3; i++ { stringArray.append("Paragraph" + "\(i)") } func concat (array: [String]) -> String { let count = UInt32(stringArray.count

为什么这个代码计算6个元素,而在swift游乐场计算9个元素是错误的

var stringArray = ["1", "2", "3", "4", "5", "6"]

for var i = 0; i < 3; i++ {
    stringArray.append("Paragraph" + "\(i)")
}


func concat (array: [String]) -> String {
    let count = UInt32(stringArray.count)                      ** --> =9 **
    let randomNumberOne = Int(arc4random_uniform(count))
    let randomNumberTwo = Int(arc4random_uniform(count))
    let randomNumberThree = Int(arc4random_uniform(count))

    let concatString = array[randomNumberOne] + array[randomNumberTwo] + array[randomNumberThree]

    return concatString
}

let finalString = concat(stringArray)

它是否与64位与32位有关?我有Xcode版本6.0 6A313。

您正在将新元素添加到已包含内容[1、2、3、4、5、6]的同一stringArray中。然后将段落i字符串附加到它3次。因此,新的内容现在是[1,2,3,4,5,6,第1段,第2段,第3段]。这就是计数达到9的原因。

您正在将新元素添加到已包含内容[1、2、3、4、5、6]的同一stringArray中。然后将段落i字符串附加到它3次。因此,新的内容现在是[1,2,3,4,5,6,第1段,第2段,第3段]。这就是计数达到9的原因。@ENASE-36你应该发表你的评论作为回答。
var stringArray = ["1", "2", "3", "4", "5", "6"]              ** --> =6 **

let count = UInt32(stringArray.count)