ios - 闭包时标识符错误? | Swift Tour - 关闭

标签 ios swift closures identifier

所以在“Swift Tour”( https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html )中有一个关于闭包的部分。
他们的示例中的代码如下:

numbers.map({ (number: Int) -> Int in
    let result = 3 * number
    return result
})

但是当尝试运行此程序时,您会收到以下错误:“错误:使用无法解析的标识符“数字”

所以我的问题是:

  1. 什么是闭包/谁能解释一下它们的用法吗?
  2. 这个示例有什么问题(这是 Swift 文档的官方代码示例..)

最佳答案

数组 numbers 在上一个代码块的第 12 行声明。该章中显示的每个代码块都建立在之前的代码块的基础上。您可以download the code as a playground

功能代码块是:

var numbers = [20, 19, 7, 12]

numbers.map({ (number: Int) -> Int in
    let result = 3 * number
    return result
})

闭包在own chapter中有更详细的描述。但总而言之:

Closures are self-contained blocks of functionality that can be passed around and used in your code. Closures in Swift are similar to blocks in C and Objective-C and to lambdas in other programming languages.

对于map函数,闭包中的代码依次对数组的每个元素进行操作。它接受数组元素作为输入并返回输出数组的元素。

您可以使用模函数为奇数返回 0

let evens = numbers.map({ (number: Int) -> Int in
    if number % 2 == 0 {
        return number
    } else {
        return 0
    }
})

关于ios - 闭包时标识符错误? | Swift Tour - 关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55206308/

相关文章:

swift - 控制系统声音的音量

swift - 命令因信号 : Segmentation fault: 11 while emitting IR SIL function 而失败

javascript - 在 React 中,为什么包含闭包的被调用函数不会在组件安装后立即运行?

iphone - IOS 应用程序完全使用 HTML 5 创建 - 输入延迟...可以修复吗?

ios - 推送后如何将用户带到选定的索引

ios - 移动应用程序的视频流

go - 使用命名返回类型时未使用变量

ios - 没有堆叠的多个 UIView 数组

ios - swift ios 10 异步或在后台执行代码

ios - 尝试浏览由 swift 应用程序创建的简单 .sqlite 文件?