swift为什么使用characters.split?为什么map(String.init)用于
//有人能解释一下这段代码吗?“您的代码中有错误,请按如下方式替换它:swift为什么使用characters.split?为什么map(String.init)用于,swift,swift3,Swift,Swift3,//有人能解释一下这段代码吗?“您的代码中有错误,请按如下方式替换它: 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
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(separator: " ").map(String.init)
例如:
let entry = readLine()!.components(separatedBy: " ")
现在
characters.split
使用您在上面的大小写“”(空格)中给出的分隔符拆分字符。因此,它将生成一个字符数组。您需要将其用作字符串,以便将字符映射到string
type bymap()
我假设您知道代码中除此行以外的所有内容:
var str = "Hello, playground"
let entry = str.characters.split(separator: " ").map(String.init)
print(entry)
readLine()
读取并返回用户输入。假设用户输入是
let entry = readLine()!.characters.split(" ").map(String.init)
使用.characters.split(“”
),我们使用分隔符拆分输入。这个分离器是什么?空格(“”)!现在,输入分为两部分——“清扫器”和“12345678”
我们希望两个分开的部分是字符串,对吗?字符串更容易操作。当前,分割的部分存储在String.CharacterView.SubSequence
的数组中。我们希望将每个String.CharacterView.SubSequence
转换为一个字符串。这就是为什么我们使用map
<代码>映射将特定功能应用于集合中的所有内容。所以
Sweeper 12345678
就像
.map(String.init)
我们现在已经将整个集合转换为字符串
// this is for demonstration purposes only, not real code
for x in readLine()!.characters.split(" ") {
String.init(x)
}