闭包标识符错误? | Swift 游览 - 闭馆
Identifier error with closures? | Swift Tour - Closures
所以在 "Swift Tour" (https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html) 中有一部分是关于闭包的。
他们示例中的代码如下:
numbers.map({ (number: Int) -> Int in
let result = 3 * number
return result
})
但是当尝试 运行 时,您会收到以下错误:“错误:使用未解析的标识符 'numbers'”
所以我的问题是:
- 什么是闭包/谁能解释一下它们的用法?
- 示例有什么问题(它是 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
函数的情况下,闭包中的代码依次对数组的每个元素进行操作。它接受数组元素作为输入,returns 是输出数组的元素。
你可以return 0 奇数使用模函数
let evens = numbers.map({ (number: Int) -> Int in
if number % 2 == 0 {
return number
} else {
return 0
}
})
所以在 "Swift Tour" (https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html) 中有一部分是关于闭包的。
他们示例中的代码如下:
numbers.map({ (number: Int) -> Int in
let result = 3 * number
return result
})
但是当尝试 运行 时,您会收到以下错误:“错误:使用未解析的标识符 'numbers'”
所以我的问题是:
- 什么是闭包/谁能解释一下它们的用法?
- 示例有什么问题(它是 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
函数的情况下,闭包中的代码依次对数组的每个元素进行操作。它接受数组元素作为输入,returns 是输出数组的元素。
你可以return 0 奇数使用模函数
let evens = numbers.map({ (number: Int) -> Int in
if number % 2 == 0 {
return number
} else {
return 0
}
})