私はSwiftのイニシャライザの周りに頭を抱えようとしています。私は彼らが何をするのかを知っているが、なぜ私はそれらが必要なのか分からない。SwiftでInitializersを使用するのはなぜですか?
例えば:(リンゴのドキュメントから)
class NamedShape {
var numberOfSides = 0
var name: String
var sideLength: Double
init(name: String, sideLength: Double) {
self.name = name
self.sideLenght = sideLength
}
}
self.sideLength
はなく、単に「sideLength」の実際の値は、等しくないはずinitは、初期値を設定する必要がある場合。あるいは、関数に引数を取り入れるためにinitを作成する必要がありますか?
私はとても混乱していますが、誰かが私を助けることができたら本当に感謝します。
名前とsideLength初期化子を呼び出すときに設定されます。self.sideLengthはクラスプロパティです。sideLengthは初期化子パラメータです。 –
numberOfSidesで宣言したときにinitを初期化するとinitは必須ではありません。 –
BTW常にクラスプロパティを定数にし、必要な初期化子を追加する必要があります。プロパティを変更する必要がある場合は、新しいオブジェクトを作成してください。 –