現在のスタイルガイドでは、配列と辞書は次の方法で初期化されるとされています。
var names = [String]()
var lookup = [String: Int]()
私はこれを押し戻して、次のことを支持したいと思います。
var names: [String] = []
var lookup: [String: Int] = [:]
これが私の理論的根拠です:
[Type]()
は、特に新参者にとっては異質に見えます。 私にとって、 : [Type] = []
は、多くの場合、単に読みやすくなっています。var stuff = [1, 2, 3, 4, 5, // ... 100 more numbers
106.7, 107, "haha", nil, 108, 109]
型チェッカーは、すべての要素をスキャンして、 stuff
を正しく型推論する必要があります。 トリックがない場合でも(「はは」)、私はこれがエディターの行き詰まりを見てきました。 (こんにちはレインボー。)タイプチェッカーを機能させて、作業を再確認するのは良い考えのようです。
var items: [Type] = []
形式を好みます。 https://twitter.com/_jackhl/status/646480946619805697どう思いますか?
@rayfix私はあなたの提案したフォーマット、すなわちvar names: [String] = []
を好むように成長しました
私の合理的な理由は、このアプローチは、 let
定数を使用して配列を定義する場合に採用するアプローチとより一貫性があるように見えるということです。 (後で変更できないため、空の配列に初期化することはありません)
たとえば、クラスの場合:
class SimpleClass {
let array: [String]
init(array: [String]) {
self.array = array
}
}
または、値が条件に依存する定数配列を定義する場合。
let array: [String]
if condition {
array = array1
} else {
array = array2
}
これで大きな+1!
コースのかなり早い段階で配列(および辞書)を教えることができるため、コースにvar array: [Type] = []
表記を選択しました。 私の教授法は、最初から始めて、一度に1つのトピックだけを追加し、説明のつかないままにしないことです。 この表記法では、初期化子やジェネリックスなど、その時点で学生がまだ慣れていないトピックが含まれていないため、これを行うことができます。
大好きです。 私はあなたの提案した構文を私自身のコードベースで使用します。 方程式の一方の側に変数の定義とタイプ、もう一方の側に値。 素晴らしくてシンプル。
最も参考になるコメント
@rayfix私はあなたの提案したフォーマット、すなわち
var names: [String] = []
を好むように成長しました私の合理的な理由は、このアプローチは、
let
定数を使用して配列を定義する場合に採用するアプローチとより一貫性があるように見えるということです。 (後で変更できないため、空の配列に初期化することはありません)たとえば、クラスの場合:
または、値が条件に依存する定数配列を定義する場合。