Reactivecocoa: Convertir des fonctions libres en fonctions statiques

Créé le 23 mai 2016  ·  5Commentaires  ·  Source: ReactiveCocoa/ReactiveCocoa

Les méthodes sans instance doivent-elles être des fonctions libres ou des fonctions statiques ?

Car actuellement nous avons :

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>
}

Mais nous avons aussi :

/// 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>

Nous devrions standardiser sur l'un ou l'autre pour RAC 5.0.

Je voterais pour les fonctions libres, mais je suis curieux de savoir si quelqu'un pense que nous devrions utiliser des fonctions statiques. @ReactiveCocoa/reactivecocoa

Commentaire le plus utile

Les directives de l'API Swift sont assez claires à ce sujet .

Préférez les méthodes et propriétés aux fonctions libres. Les fonctions libres ne sont utilisées que dans des cas particuliers :

Quand il n'y a pas de soi évident :
min(x, y, z)

Lorsque la fonction est un générique sans contrainte :
print(x)

Lorsque la syntaxe de la fonction fait partie de la notation de domaine établie :
sin(x)

Ces fonctions sont essentiellement des constructeurs sophistiqués, donc utiliser le métatype comme self semble tout à fait défendable.

Tous les 5 commentaires

Les fonctions statiques sont plus compatibles avec la saisie semi-automatique, donc je voterais pour cela.
Merci d'avoir soulevé cette question :) Je suis tout à fait d'accord pour que nous nous unissions pour plus de cohérence !

Un avantage des fonctions gratuites est que vous n'avez pas besoin de vous demander si quelque chose est un Signal ou un SignalProducer .

Je suis d'accord avec @JaviSoto. Pour les personnes qui connaissent bien RAC, les fonctions gratuites ne sont pas un problème, je dirais que la découvrabilité de niveau débutant à intermédiaire peut être un problème.

Les directives de l'API Swift sont assez claires à ce sujet .

Préférez les méthodes et propriétés aux fonctions libres. Les fonctions libres ne sont utilisées que dans des cas particuliers :

Quand il n'y a pas de soi évident :
min(x, y, z)

Lorsque la fonction est un générique sans contrainte :
print(x)

Lorsque la syntaxe de la fonction fait partie de la notation de domaine établie :
sin(x)

Ces fonctions sont essentiellement des constructeurs sophistiqués, donc utiliser le métatype comme self semble tout à fait défendable.

Cela a été fait en #3001 ! ??

Cette page vous a été utile?
0 / 5 - 0 notes