gpt4 book ai didi

ios - 查看 Apple 的 "Adventure Game"教程 "in"是什么意思?

转载 作者:可可西里 更新时间:2023-11-01 00:16:58 24 4
gpt4 key购买 nike

在查看 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”。有谁知道那些是什么/它们的用途是什么?

最佳答案

这是一个闭包定义,它捕获三个变量,其参数是dpadxyin 声明闭包执行的代码的实际开始。变量的值由调用者提供。

更新:in 有助于标记代码的开头,即假设您有以下可选闭包变量:

var foo : (Array<Int> -> Int)?

现在,您想在代码中实际定义它并实现(伪代码):

foo = { for every int in array -> sum }

问题是,如何访问数组?这是,当模式匹配跳入时,例如

foo = { numbers [...] }

在这里,数组将被分配给一个名为numbers 的不可变变量。在此之后您可以直接编写代码,但是您希望如何区分调用者通过模式匹配和局部变量分配的变量?这就是当 in 发挥作用时,例如你会写

foo = { numbers in return numbers.reduce(0, { $0 + $1 }) }

现在,很明显,in 之后的所有内容都将在闭包内用于计算。此外,通过查看闭包变量的初始定义,您还将了解 numbers 的类型。

为了完整起见,您现在可以通过以下方式调用它

let x = foo?([1, 2, 3]) // x = 6

关于ios - 查看 Apple 的 "Adventure Game"教程 "in"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28098109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com