Должны ли неэкземплярные методы быть свободными или статическими?
Потому что на данный момент у нас есть:
extension SignalType {
/// Merges the given signals into a single `Signal` that will emit all values
/// from each of them, and complete when all of them have completed.
@warn_unused_result(message="Did you forget to call `observe` on the signal?")
public static func merge<S : SequenceType where S.Generator.Element == Signal<Value, Error>>(signals: S) -> ReactiveCocoa.Signal<Self.Value, Self.Error>
}
Но еще у нас есть:
/// Combines the values of all the given signals, in the manner described by
/// `combineLatestWith`.
@warn_unused_result(message="Did you forget to call `observe` on the signal?")
public func combineLatest<A, B, Error>(a: Signal<A, Error>, _ b: Signal<B, Error>) -> Signal.Signal<(A, B), Error>
Мы должны стандартизировать один или другой для RAC 5.0.
Я бы проголосовал за бесплатные функции, но мне любопытно, думает ли кто-нибудь, что мы должны использовать статические функции. @ ReactiveCocoa / реактивное какао
Статические функции более удобны для автозаполнения, поэтому я бы проголосовал за это.
Спасибо, что подняли этот вопрос :) Определенно согласен, что мы должны объединиться для единообразия!
Преимущество бесплатных функций в том, что вам не нужно думать о том, является ли что-то Signal
или SignalProducer
.
Я согласен с @JaviSoto. Для людей, которые хорошо знакомы с RAC, бесплатные функции не являются проблемой, я бы сказал, что для новичков и среднего уровня обнаружение может быть проблемой.
Рекомендации по Swift API довольно ясны по этому поводу .
Предпочитайте методы и свойства свободным функциям. Бесплатные функции используются только в особых случаях:
Когда нет очевидного Я:
min(x, y, z)
Когда функция является неограниченным универсальным:
print(x)
Когда синтаксис функции является частью установленной нотации домена:
sin(x)
Эти функции в основном представляют собой причудливые конструкторы, поэтому использование метатипа self
кажется вполне оправданным.
Это было сделано в # 3001! 🎉
Самый полезный комментарий
Рекомендации по Swift API довольно ясны по этому поводу .
Эти функции в основном представляют собой причудливые конструкторы, поэтому использование метатипа
self
кажется вполне оправданным.