- 追加された行はこの色です。
- 削除された行はこの色です。
#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が使える。