2016-12-06 72 views
1

我使用Vapor和的第一件事,一个是使用GET方法,它看起来像以下:如何阅读这个Swift语法?

drop.get("hello") { request in 
    return "Hello, world!" 
} 

现在,我的理解是,闭包是一样的类型函数变量。正确?在这里,我看到我们调用Droplet类的一个实例的方法get,该类名为drop并传入字符串。

在get方法体内调用/传递的闭包是什么?我如何阅读?

回答

3

这被称为尾随闭合语法。如果函数的最后一个参数是一个闭包,那么可以将它放在紧跟在前一个参数的右括号后面的花括号中。

get方法这里有两个参数:一个String,并与一些签名封样(Request) ->()

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html#//apple_ref/doc/uid/TP40014097-CH11-ID102

您还可以看到情况下唯一参数是一个封闭,像map()方法在一个数组上。在这些情况下,括号可以完全省略,并且封闭符在函数名称后紧跟在大括号中,例如:

let lowerCasedWords = arrayOfWords.map{ $0.lowercased() }