import Foundation
for i in 1 ... n {
let entry = readLine()!.characters.split(" ").map(String.init)
let name = entry[0]
let phone = Int(entry[1])!
phoneBook[name] = phone``
}
//谁能解释一下这段代码`
最佳答案
我假设您知道代码中除了这一行以外的所有其他内容:
let entry = readLine()!.characters.split(" ").map(String.init)
readLine()
读取用户输入并将其返回。假设用户输入是
Sweeper 12345678
使用 .characters.split("")
,我们使用分隔符拆分输入。这个分隔符是什么?空间 (” ”)!现在输入已分为两个 - “Sweeper”和“12345678”。
我们希望拆分后的两个部分是字符串,对吧?字符串更容易操作。目前拆分的部分存储在 String.CharacterView.SubSequence
数组中。我们想将每个 String.CharacterView.SubSequence
变成一个字符串。这就是我们使用 map
的原因。 map
将特定函数应用于集合中的所有内容。所以
.map(String.init)
就像
// this is for demonstration purposes only, not real code
for x in readLine()!.characters.split(" ") {
String.init(x)
}
我们现在已经将整个集合转换为字符串!
关于swift 为什么使用 characters.split?为什么 map(String.init) 用于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43025718/