Initialization 程式範例 — Apple’s The Swift Programming Language

Initializers

Default Property Values

Initialization Parameters

有參數的 init。

Parameter Names and Argument Labels

Initializer Parameters Without Argument Labels

利用 _ 取消 argument label。

Optional Property Types

Assigning Constant Properties During Initialization

Default Initializers

當 property 在宣告時都有設定初始值,而且沒有另外定義 init 時,Swift 將自動生成沒有參數的 Default Initializer,init()。利用 default Initializer 生成東西時,東西的 property 將為當初宣告時設定的初始值。

Memberwise Initializers for Structure Types

Initializer Delegation for Value Types

Initializer Inheritance and Overriding

Designated and Convenience Initializers in Action

Image for post
Image for post

Failable Initializers

inti? ,可能失敗的 init。生成的東西是 optional,失敗時會生成 nil。

生成 Animal 時,當 species 是空字串時回傳 nil。

Failable Initializers for Enumerations

Failable Initializers for Enumerations with Raw Values

Propagation of Initialization Failure

呼叫父類別的 init?,也可能造成失敗,得到 nil。

Overriding a Failable Initializer

覆寫父類別的 Failable Initializer 時,也可以定義成 nonfailable initializer。不過如果在 nonfailable initializer 裡呼叫父類別的 Failable Initializer 時,要加 force-unwrap !。

The init! Failable Initializer

除了定義 init?,也可以定義 init!。

Required Initializers

加了 required 的 initializers,子類別也要定義(或繼承)。

Setting a Default Property Value with a Closure or Function

利用 closure 或 global function 設定 property。

例子:

西洋棋的格子。true 代表黑色,false 代表白色。

Image for post
Image for post

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store