2016-12-06 71 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() }