日記
オリンピックのロードレースを見てテンション上がったので今日から夜練を始めてみた.俺は脳死でコツコツやってればある程度成長できるやろという感じで生きてきたので今回もそんな感じで成長したい.が,洗濯と風呂が結構なコストである.
そういえばこの習慣も今日で50日目らしい.いくつかは知らなかったことを知れたのでやって悪くはなかったと思う.
今日書いたコード
class Food: CustomStringConvertible { var name: String var description: String { "name: \(name)" } init(name: String) { self.name = name } convenience init() { self.init(name: "[Unnamed]") } } print(Food(name: "Banana")) print(Food()) class RecipeIngredient: Food { var quantity: Int override var description: String { super.description + ", quantity: \(quantity)" } init(name: String, quantity: Int) { self.quantity = quantity super.init(name: name) } override convenience init(name: String) { self.init(name: name, quantity: 1) } } // サブクラス独自のDesignated Initializerを実装しているので自動的には継承されないが, // スーパークラスのDesignated Initializerを全て実装しているのでConvenience Initializerが継承される print(RecipeIngredient(name: "Egg", quantity: 12)) print(RecipeIngredient(name: "Apple")) print(RecipeIngredient()) class ShoppingListItem: RecipeIngredient { var purchased = false override var description: String { super.description + ", purchased: \(purchased)" } } // サブクラス独自のDesignated Initializerを実装していないので, // スーパークラスのDesignated InitializerとConvenience Initializerが全て継承される print(ShoppingListItem(name: "Milk", quantity: 1)) print(ShoppingListItem(name: "Onion")) print(ShoppingListItem())
name: [Unnamed] name: Banana name: Egg, quantity: 12 name: Apple, quantity: 1 name: [Unnamed], quantity: 1 name: Milk, quantity: 1, purchased: false name: Onion, quantity: 1, purchased: false name: [Unnamed], quantity: 1, purchased: false
初めて知ったこと
なし.今回は今までの説明の確認回だった.
そういえば技術書典で買ったSwiftイニシャライザ大全(うろ覚え)という本が積んであるのでこの章を読み終わったらその本も読もうと思う.