#author("2016-07-26T16:32:28+09:00","default:wikiwriter","wikiwriter") &tag(Swift/関数とクラス); *目次 [#a2828666] #contents *関連ページ [#i298c015] *参考情報 [#s8c261fc] *失敗可能イニシャライザ [#m33acebf] -失敗する可能性のあるイニシャライザを定義できる。 #pre{{ class Person { var age:Int var name:String init?(age:Int, name:String) { self.age = age self.name = name if age == 0 { return nil } } } var person:Person? = Person(age: 10, name: "abc") print(person!.name) }} *メソッド引数に関して [#m226ec28] -イニシャライザとメソッドで省略可能となる引数がことなるので注意。Objective-Cとの互換性のためか。 #pre{{ final class Person { init(a:Int, b:Int, c:Int) { } func action(a:Int, b:Int, c:Int) { } } }} -イニシャライザの場合全てのラベル指定が必要。 #pre{{ var person = Person(a:1, b:2, c:3) }} -メソッドの場合最初のラベルは省略。 #pre{{ person.action(1, b:2, c:3) }} *クラスメソッドとクラス変数 [#abe2fce2] -[[【Swift】classとstaticの挙動の違いを整理する - Qiita:http://qiita.com/shimesaba/items/dc976b3974cfb41bec0c]] -オーバーライドできないありがちなstatic func、static varが使える。