gpt4 book ai didi

Swift 函数语法分解

转载 作者:搜寻专家 更新时间:2023-11-01 06:22:47 26 4
gpt4 key购买 nike

我提前为这个问题的标题道歉。

我希望在 Swift 中对函数的某些语法元素进行分割。

函数:

let call:NSURLSessionDataTask = session.dataTaskWithRequest(request) {
data, response, error in

if error != nil {
println("error=\(error)")
return
}

println("response = \(response)")
}

我想知道逐行,元素如何影响常量?

我看到的;

1) 一个常量被设置为函数 (session.dataTaskWithR...) 的结果,带有一个“请求”参数,后跟似乎是闭包函数的开始 { 触发时执行。 (使用 call.resume())

2) 这些是函数的声明变量吗?他们被分配到这里了吗?在函数或对象的顶部写入“数据、响应、错误”似乎很奇怪,我假设/知道这些填充了从 session.dataTas.. 调用返回的数据。看起来好像它们未声明且未键入。

4) 这看起来很直接,如果错误不为零,打印错误并退出。

9) 打印响应头。

所以,我想我的主要问题是关于第 2 行的。我认为只写变量名没有任何意义,除了它是如何完成的。这就是它的完成方式吗?

最佳答案

你用错了“闭包”这个词。 Swift 中的所有函数都是闭包。这个函数的特别之处在于它是匿名的。这意味着没有声明行——所以需要有另一种方式来表达传入的参数。 Swift 的解决方案是将参数列表(可能还有返回类型)放在函数体开头的 in 行中。

Seems weird to just write "data,response,error" at the top of a function or object, I assume/know these are populated with data returned from the session.dataTas.. call. It just seems as though they are undeclared and not typed.

正确。它们可以明确地类型化,但它们不必在这种情况下,因为类型已经为编译器所知;它已经知道 session.dataTaskWithRequest: 的参数是什么(包括它作为第二个参数的函数的参数类型)。

关于Swift 函数语法分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30514847/

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