![](/img/trans.png)
[英]How can I make the memberwise initialiser public, by default, for structs in Swift?
[英]Why it is called the Memberwise Initialiser
從辦公室Swift文件引用
所有結構都有一個自動生成的成員初始化程序 ,您可以使用它初始化新結構實例的成員屬性...
問題1 :默認初始化程序有什么特別之處,為什么它不能簡單地稱為默認初始化程序? 為什么要添加“成員”? 是因為它列出了Structure中定義的所有成員屬性。 並且您還必須在創建實例時遵循結構內定義的順序。
問題2是否有其他特殊的初始化者有自己的特殊名稱? 如果是這樣,他們看起來像什么。
[注釋第一部分:]與Vadian先生進一步討論
[注意第二部分:]
關於問題1:
斯威夫特有一項不可撤銷的法律:
在創建該類或結構的實例時,類和結構必須將其所有存儲的屬性設置為適當的初始值。 存儲的屬性不能保留在不確定的狀態。
我們正在討論結構 :
創建結構時 ,如果所有屬性都具有默認值,則可以使用默認初始值設定項 (括號對)。
如果您只聲明沒有默認值的屬性,編譯器會創建一個隱式的成員初始化程序 - 您必須使用它 - 以確保以非常方便的方式為每個屬性分配默認值
這似乎主要是基於意見,並不適合SO,但這是我的2美分:
默認聽起來很像指定 ,這是一個完全正交的概念。
不是“特殊”,但至少有兩種不同的初始化器: 指定和方便 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.