swift 为什么使用 characters.split?为什么 map(String.init) 用于

标签 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 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/

相关文章:

ios - 如何在具有不同内容的 Controller 中多次使用自定义 UIView?

ios - 在 Swift 中获取时区 (GMT)

swift - 从核心数据中删除项目

ios - 如何通过按钮将 UICollectionViewCell 转换为另一个 ViewController?

ios - CLLocation 为不同的 iPhone 设备返回不同的 CLLocationSpeed 值

ios - 如何使用 Realm Swift 将旧属性迁移到新对象中

swift - addArrangedSubview 代码有什么问题?

ios - XCUIApplication 上的 swipeUp() 破坏了 UITest 中的 XCUIApplication

ios - 用于 Swift 和 Objective C 项目的 Swift 框架

ios - WKWebView 添加到 subview ,并设置大小等于父级?