Extensions
昨日に引き続き https://docs.swift.org/swift-book/LanguageGuide/Extensions.html を読む。
- オリジナルソースコードにアクセスできなくても機能性を追加できる(遡及モデリング)
extension
を宣言できるのはファイルスコープだけ- extensionでプロトコル適合は Protocol の章で
- 総称型の extension は Generics の章で
let aMarathon = 42.km + 195.m
- extensionで便利イニシャライザを追加できるけど、指定イニシャライザや deinitializer は追加できない
- 別のモジュールで宣言された構造体に、エクステンションでイニシャライザを追加すると、新しいイニシャライザは定義モジュールのイニシャライザを呼び出すまで、
self
にアクセスできません。 3.repetitions { print("Hello!") }
mutating func square() { self = self * self }
- extensionにネストされた型
extension Int { enum Kind {〜} …}
- ネストされた型へのextension
extension OuterType.InnerType {〜}