替换for循环到映射方法



我对这个目标很执着。

了解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)")

感谢的帮助

String文档告诉我们:

字符串是一系列字符,如"Swift",形成一个集合。

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

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

或者,更简洁地说:

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

我做到了。问题是我把var字母作为一个空数组,并试图向这个数组添加字符。现在我意识到这是错误的。

func updateUI() {
let letters = currentGame.formattedWord
let mappedLetters = letters.map { String($0)} 
/* for letter in currentGame.formattedWord {
letters.append(String(letter))
} */

谢谢大家!

最新更新