クラスと構造体は、そのクラスまたは構造体のインスタンスが生成されるまでに、ストアドプロパティのすべてに適切な初期値を設定する必要があります。ストアドプロパティを不確定な状態にしておくことはできません。
イニシャライザ内でストアドプロパティに初期値を設定するか、プロパティの定義の一部としてデフォルトのプロパティ値を代入してストアドプロパティに初期値を設定することができます。
イニシャライザ
イニシャライザは、特定の型の新しいインスタンスを生成するために呼び出されます。一番シンプルなイニシャライザは、パラメータが無いインスタンスメソッドと同じようになり、init
キーワードで記述します。
init() {
// 初期化処理を実行
}
次の例では、華氏での温度を保管する新しい構造体 Fahrenheit
を定義しています。構造体 Fahrenheit
には、Double
型のストアドプロパティ temperature
があります。
struct Fahrenheit {
var temperature: Double
init() {
temperature = 32.0
}
}
var f = Fahrenheit()
print("The default temperature is \(f.temperature)° Fahrenheit")
// "The default temperature is 32.0° Fahrenheit" と出力
この構造体では、パラメータが無いイニシャライザ init
を定義していて、値 32.0
(華氏温度で水の氷点)で温度を初期化しています。
デフォルトのプロパティ値
上で見たように、イニシャライザ内からストアドプロパティの初期値を設定することができます。あるいは、プロパティの宣言の一部として、デフォルトのプロパティ値を指定します。定義されるときにプロパティに初期値を代入して、デフォルトのプロパティ値を指定します。
プロパティが宣言されるところで temperature
プロパティにデフォルト値を定義して、構造体 Fahrenheit
をよりシンプルに記述することができます。
struct Fahrenheit {
var temperature = 32.0
}
Portions of this page are translations based on work created and shared by Apple and used according to terms described in the Creative Commons Attribution 4.0 International License.