替换循环映射方法

时间:2020-04-30 21:03:11

标签: swift for-loop methods

我对这个目标感到困惑。

了解map方法,并用它代替将updateUI()中的字符数组转换为字符串数组的循环。

我已经阅读了有关map的文档和主题,但是我的所有尝试仍然没有效果。

//change loop below to map method

for letter in currentGame.formattedWord {
    letters.append(String(letter))
}
let wordWithSpacing = letters.joined(separator: " ")      
correctWordLabel.text = wordWithSpacing
scoreLabel.text = "Wins: \(totalWins), Losses: \(totalLosses)"
treeImageView.image = UIImage(named: "Tree \(currentGame.incorrectMovesRemaining)")

感谢帮助

2 个答案:

答案 0 :(得分:3)

String documentation告诉我们:

字符串是构成集合的一系列字符,例如“ Swift”。

因此,您可以使用map将这些字符中的每一个转换为单独的字符串:

let string = "Hello, world"

let letters = string.map { (character: Character) -> String in
    return String(character)
}

或更简洁地说:

let letters = string.map { String($0) }

答案 1 :(得分:-1)

我做到了。问题是我将var字母保留为空数组,并尝试向该数组添加字符。现在我意识到这是错误的。

func updateUI() {
            let letters = currentGame.formattedWord
            let mappedLetters = letters.map { String($0)} 

       /* for letter in currentGame.formattedWord {
           letters.append(String(letter))
            } */

谢谢!