構造体/クラス内で定数を宣言する。
struct Hoge {
let hoge = hugahuga
}
この定数をクロージャ外で呼び出す際、通常は構造体/クラスをインスタンス化させないと呼出できない。
//実行結果 hugahuga
しかし、構造体/クラス内で定数を宣言する際、前にstatic と記載すると、インスタンス化しなくても直接"型名.プロパティ"と記載することで呼出可能になる。
struct Hoge {
static let hoge = hugahuga
}
//実行結果 hugahuga
これは、構造体/クラス内で宣言した定数が、通常はinstance propertyとしてインスタンスに関連付いて登録される所、staticがついた定数はtype propertyとして型自体に登録されるため、インスタンス化しなくても呼出可能となる、ということ。
Model内で生成したColor構造体や、Constant構造体(ID等を保管する場所)が持つプロパティは、staticをつけて定数を宣言することで、他のクラスで呼び出しやすくすると吉
ちなみにstaticはメソッドにも使える
struct Hoge {
static func hoge(){
print (hugahuga)
}
//実行結果 hugahuga