2016-04-11 4 views
1

Я не могу понять метод следующую сигнатуру я прошел, наконец, во время работы на рамках с открытым исходным кодом:Swift - Странный метод подписи синтаксис

public func myFunc<A: TypeOfA, B: TypeOfB, C: TypeOfC> 
    (someA: A) 
    -> (someB: B) 
    -> ReturnedType { 

// BODY OF THE FUNC 

} 

Почему 2 возвратные стрелки «->»? Кто-нибудь знает, где я могу получить больше информации об этом синтаксисе? Найти что-нибудь в документе Apple Swift.

Я не говорю о дженериках, а о том, как объявляются параметры.

И да это нормально компилируется с Xcode 7.3

Благодаря

ответ

1

Функция принимает один аргумент, someA: A и возвращает другую функцию.

Функция возвращается, принимает someB: B и возвращает ReturnedType.

Это эквивалентно:

public func myFunc<...>(someA: A) -> ((someB: B) -> ReturnedType) { 
    ... 
} 

или

typealias SecondFunction = (someB: B) -> ReturnedType 
public func myFunc<...>(someA: A) -> SecondFunction { 
    ... 
} 
Смежные вопросы