Swift Evolution,

Swift's API Design Guidelines are really good in my opinion, but I believe
there is
ambiguity with current trailing closure syntax.

Take for example if there were three variations of a `subscribe`function:

     func subscribe(onNext block: @escaping (Event) -> Void)  { ... }

     func subscribe(onError block: @escaping (Event) -> Void) { ... }

     func subscribe(onCompleted block: @escaping (Event) -> Void) { ... }

Since using subscribe with trailing closure syntax would cause ambiguity:

     subscribe { event in ... }

The only option available is to call the function as normal:

     subscribe(onNext: { event in ... })

Since these functions are distinguished by their argument label, if a
variation of trailing closure syntax were introduced that provided the
option of using an argument label in parenthesis this ambiguity would
disappear.

something like this:

     subscribe(onNext:) { event in ... }

would allow using trailing closure syntax in this case.

Just a thought, I personally think having this change to the language would
be worthwhile but would love to hear the community's opinion.

- Nick
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to