Syntax Swift完成处理程序语法

Syntax Swift完成处理程序语法,syntax,swift,Syntax,Swift,此代码用于回答以下问题: dataTaskWithURL的文档说明如下: func dataTaskWithURL(_ url: NSURL, completionHandler completionHandler: ((NSData!, NSURLResponse!, NSError!) -> Void)?) -> NSURLSessionDataTask

此代码用于回答以下问题:

dataTaskWithURL
的文档说明如下:

func dataTaskWithURL(_ url: NSURL,
   completionHandler completionHandler: ((NSData!,
                              NSURLResponse!,
                              NSError!) -> Void)?) -> NSURLSessionDataTask
因此,第一个代码块的
{(data….}
部分似乎是完成处理程序

dataTaskWithUrl(url,函数(数据…){…});

有人能解释一下为什么完成处理程序不是方法调用中的第二个参数吗?

它是一个:

如果需要将闭包表达式作为 函数的最终参数和闭包表达式很长,它可以 将其写成尾随闭包可能会很有用。尾随闭包 闭包是在外部(和之后)编写的闭包表达式 它支持的函数调用的括号


啊,这正是我要找的。谢谢!
func dataTaskWithURL(_ url: NSURL,
   completionHandler completionHandler: ((NSData!,
                              NSURLResponse!,
                              NSError!) -> Void)?) -> NSURLSessionDataTask