Der aktuelle Styleguide sagt, dass Arrays und Dictionaries auf folgende Weise initialisiert werden.
var names = [String]()
var lookup = [String: Int]()
Ich möchte dies zurückdrängen zugunsten von:
var names: [String] = []
var lookup: [String: Int] = [:]
Hier meine Begründung:
[Type]()
sieht fremd aus, besonders für einen Neuling. Für mich liest sich : [Type] = []
in vielen Fällen einfach besser.var stuff = [1, 2, 3, 4, 5, // ... 100 more numbers
106.7, 107, "haha", nil, 108, 109]
Der Typprüfer muss alle Elemente scannen, um infer stuff
richtig einzugeben. Selbst wenn es keine Tricks gibt ("haha"), habe ich gesehen, dass dies den Editor festgefahren hat. (Hallo Regenbogen.) Es scheint eine gute Idee zu sein, den Type Checker für Sie arbeiten zu lassen, um Ihre Arbeit zu überprüfen.
var items: [Type] = []
. https://twitter.com/_jackhl/status/646480946619805697Was denkst du?
@rayfix Ich bin gewachsen, um Ihr vorgeschlagenes Format zu bevorzugen, dh var names: [String] = []
Meine Begründung ist, dass dieser Ansatz konsistenter mit dem Ansatz aussieht, den Sie wählen würden, wenn Sie ein Array mit einer let
-Konstante definieren möchten. (Sie würden es nicht mit einem leeren Array initialisieren, da Sie es später nicht ändern könnten.)
Zum Beispiel im Fall einer Klasse:
class SimpleClass {
let array: [String]
init(array: [String]) {
self.array = array
}
}
Oder bei der Definition eines konstanten Arrays, dessen Wert von einer Bedingung abhängt.
let array: [String]
if condition {
array = array1
} else {
array = array2
}
Großes +1 dazu!
Ich habe für meine Kurse die var array: [Type] = []
-Notation gewählt, weil ich damit relativ früh in meinen Kursen Arrays (und Wörterbücher) unterrichten kann. Mein Unterrichtsansatz besteht darin, bei Null anzufangen, jeweils nur ein Thema hinzuzufügen und niemals Dinge unerklärt zu lassen. Diese Notation ermöglicht mir das, weil es keine Themen gibt, mit denen die Studenten zu diesem Zeitpunkt noch nicht vertraut sind, wie Initialisierer oder Generika.
Liebe es. Ich verwende Ihre vorgeschlagene Syntax in meinen eigenen Codebasen; Definition und Typ der Variable auf der einen Seite der Gleichung, Wert auf der anderen. Schön und einfach.
Hilfreichster Kommentar
@rayfix Ich bin gewachsen, um Ihr vorgeschlagenes Format zu bevorzugen, dh
var names: [String] = []
Meine Begründung ist, dass dieser Ansatz konsistenter mit dem Ansatz aussieht, den Sie wählen würden, wenn Sie ein Array mit einer
let
-Konstante definieren möchten. (Sie würden es nicht mit einem leeren Array initialisieren, da Sie es später nicht ändern könnten.)Zum Beispiel im Fall einer Klasse:
Oder bei der Definition eines konstanten Arrays, dessen Wert von einer Bedingung abhängt.