查看 Apple 的 "Adventure Game" 教程 "in" 是什么意思?
looking at Apple's "Adventure Game" tutorial what does "in" mean?
在看Apple使用SpriteKit的教程冒险游戏的源代码时,我一直看到变量被声明,声明后有左括号,还有"in"这个词。
这是我使用的代码:
let rightThumbstickHandler: GCControllerDirectionPadValueChangedHandler = { dpad, x, y in
let length = hypotf(x, y)
if length <= 0.5 {
player.heroFaceLocation = nil
return
}
就这样,"dpad, x, y in"。有谁知道那些 are/what 它们的用途吗?
这是一个闭包定义,它捕获三个变量,其参数为dpad
、x
和y
。 in
声明闭包执行的代码的实际开始。变量的值由调用者提供。
更新: in
有助于标记代码的开头,即假设您有以下可选的闭包变量:
var foo : (Array<Int> -> Int)?
现在,您想在代码中实际定义它并实现(伪代码):
foo = { for every int in array -> sum }
问题是,如何访问数组?这是,当模式匹配跳入时,例如
foo = { numbers [...] }
在这里,数组将被分配给一个名为 numbers
的不可变变量。在此之后您可以直接编写代码,但是您希望如何区分调用者通过模式匹配和局部变量分配的变量?这是,当 in
发挥作用时,例如你会写
foo = { numbers in return numbers.reduce(0, { [=13=] + }) }
现在,很明显,in
之后的所有内容都将在闭包内用于计算。此外,通过查看闭包变量的初始定义,您还将知道 numbers
是什么类型。
为了完整起见,您现在可以通过
来调用它
let x = foo?([1, 2, 3]) // x = 6
这是一个闭包。它的结构基本上像一个函数。
一个函数是
func ( dpad:Cgpoitn,x:cgfloat, y:cgfloat)->(void){
//code
}
闭包只是结构不同。
{dpad,x,y in
//the code
}
转到 34 分钟 00 并观看接下来的 2 分钟,并且很好地解释了关闭
https://www.youtube.com/watch?v=QLJtT7eSykg
-- paul hegarty:在 iTunes U 上开发 iOS 应用 swift
- 他很棒
在看Apple使用SpriteKit的教程冒险游戏的源代码时,我一直看到变量被声明,声明后有左括号,还有"in"这个词。
这是我使用的代码:
let rightThumbstickHandler: GCControllerDirectionPadValueChangedHandler = { dpad, x, y in
let length = hypotf(x, y)
if length <= 0.5 {
player.heroFaceLocation = nil
return
}
就这样,"dpad, x, y in"。有谁知道那些 are/what 它们的用途吗?
这是一个闭包定义,它捕获三个变量,其参数为dpad
、x
和y
。 in
声明闭包执行的代码的实际开始。变量的值由调用者提供。
更新: in
有助于标记代码的开头,即假设您有以下可选的闭包变量:
var foo : (Array<Int> -> Int)?
现在,您想在代码中实际定义它并实现(伪代码):
foo = { for every int in array -> sum }
问题是,如何访问数组?这是,当模式匹配跳入时,例如
foo = { numbers [...] }
在这里,数组将被分配给一个名为 numbers
的不可变变量。在此之后您可以直接编写代码,但是您希望如何区分调用者通过模式匹配和局部变量分配的变量?这是,当 in
发挥作用时,例如你会写
foo = { numbers in return numbers.reduce(0, { [=13=] + }) }
现在,很明显,in
之后的所有内容都将在闭包内用于计算。此外,通过查看闭包变量的初始定义,您还将知道 numbers
是什么类型。
为了完整起见,您现在可以通过
来调用它let x = foo?([1, 2, 3]) // x = 6
这是一个闭包。它的结构基本上像一个函数。
一个函数是
func ( dpad:Cgpoitn,x:cgfloat, y:cgfloat)->(void){
//code
}
闭包只是结构不同。
{dpad,x,y in
//the code
}
转到 34 分钟 00 并观看接下来的 2 分钟,并且很好地解释了关闭 https://www.youtube.com/watch?v=QLJtT7eSykg -- paul hegarty:在 iTunes U 上开发 iOS 应用 swift - 他很棒