Reactivecocoa: Преобразование бесплатных функций в статические функции

Созданный на 23 мая 2016  ·  5Комментарии  ·  Источник: ReactiveCocoa/ReactiveCocoa

Должны ли неэкземплярные методы быть свободными или статическими?

Потому что на данный момент у нас есть:

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 / реактивное какао

Самый полезный комментарий

Рекомендации по Swift API довольно ясны по этому поводу .

Предпочитайте методы и свойства свободным функциям. Бесплатные функции используются только в особых случаях:

Когда нет очевидного Я:
min(x, y, z)

Когда функция является неограниченным универсальным:
print(x)

Когда синтаксис функции является частью установленной нотации домена:
sin(x)

Эти функции в основном представляют собой причудливые конструкторы, поэтому использование метатипа self кажется вполне оправданным.

Все 5 Комментарий

Статические функции более удобны для автозаполнения, поэтому я бы проголосовал за это.
Спасибо, что подняли этот вопрос :) Определенно согласен, что мы должны объединиться для единообразия!

Преимущество бесплатных функций в том, что вам не нужно думать о том, является ли что-то Signal или SignalProducer .

Я согласен с @JaviSoto. Для людей, которые хорошо знакомы с RAC, бесплатные функции не являются проблемой, я бы сказал, что для новичков и среднего уровня обнаружение может быть проблемой.

Рекомендации по Swift API довольно ясны по этому поводу .

Предпочитайте методы и свойства свободным функциям. Бесплатные функции используются только в особых случаях:

Когда нет очевидного Я:
min(x, y, z)

Когда функция является неограниченным универсальным:
print(x)

Когда синтаксис функции является частью установленной нотации домена:
sin(x)

Эти функции в основном представляют собой причудливые конструкторы, поэтому использование метатипа self кажется вполне оправданным.

Это было сделано в # 3001! 🎉

Была ли эта страница полезной?
0 / 5 - 0 рейтинги