Le guide de style actuel indique que les tableaux et les dictionnaires doivent être initialisés de la manière suivante.
var names = [String]()
var lookup = [String: Int]()
Je voudrais repousser cela en faveur de:
var names: [String] = []
var lookup: [String: Int] = [:]
Voici mon raisonnement :
[Type]()
semble étranger, surtout pour un nouveau venu. Pour moi, : [Type] = []
se lit simplement mieux dans de nombreux cas.var stuff = [1, 2, 3, 4, 5, // ... 100 more numbers
106.7, 107, "haha", nil, 108, 109]
Le vérificateur de type doit analyser tous les éléments pour saisir correctement stuff
. Même lorsqu'il n'y a pas d'astuces ("haha"), j'ai vu cela enliser l'éditeur. (Bonjour arc-en-ciel.) Faire fonctionner le vérificateur de type pour que vous puissiez vérifier votre travail semble être une bonne idée.
var items: [Type] = []
. https://twitter.com/_jackhl/status/646480946619805697Qu'en penses-tu?
@rayfix J'ai appris à préférer votre format suggéré, c'est-à-dire var names: [String] = []
Mon raisonnement est que cette approche semble plus cohérente avec l'approche que vous adopteriez lorsque vous souhaitez définir un tableau avec une constante let
. (Vous ne l'initialiseriez pas dans un tableau vide car vous ne pourriez pas le modifier ultérieurement)
Par exemple dans le cas d'une classe :
class SimpleClass {
let array: [String]
init(array: [String]) {
self.array = array
}
}
Ou lors de la définition d'un tableau constant dont la valeur dépend d'une condition.
let array: [String]
if condition {
array = array1
} else {
array = array2
}
Gros +1 là dessus !
J'ai choisi la notation var array: [Type] = []
pour mes cours car elle me permet d'enseigner les tableaux (et les dictionnaires) assez tôt dans mes cours. Mon approche pédagogique est de partir de zéro, d'ajouter un seul sujet à la fois et de ne jamais laisser les choses inexpliquées. Cette notation me permet de le faire car elle n'implique aucun sujet avec lequel les étudiants ne sont pas encore familiarisés à ce stade, comme les initialiseurs ou les génériques.
Aimer. J'utilise votre syntaxe suggérée dans mes propres bases de code ; définition et type de la var d'un côté de l'équation, valeur de l'autre. Agréable et simple.
Commentaire le plus utile
@rayfix J'ai appris à préférer votre format suggéré, c'est-à-dire
var names: [String] = []
Mon raisonnement est que cette approche semble plus cohérente avec l'approche que vous adopteriez lorsque vous souhaitez définir un tableau avec une constante
let
. (Vous ne l'initialiseriez pas dans un tableau vide car vous ne pourriez pas le modifier ultérieurement)Par exemple dans le cas d'une classe :
Ou lors de la définition d'un tableau constant dont la valeur dépend d'une condition.