2016-12-06 2 views
1

Я использую Vapor и один из первых вещей, чтобы использовать метод GET, который выглядит следующим образом:Как читать этот синтаксис Swift?

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

Теперь мое понимание было, что замыкания, как переменные типа функций. Верный? Здесь я вижу, что мы вызываем метод get на экземпляр класса Droplet, который называется drop и передает строку.

Что такое закрытие, которое вызывается/передается внутри тела метода получения? Как это прочитать?

ответ

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() } 
Смежные вопросы