簡體   English   中英

為什么稱它為Memberwise Initialiser

[英]Why it is called the Memberwise Initialiser

辦公室Swift文件引用

所有結構都有一個自動生成的成員初始化程序 ,您可以使用它初始化新結構實例的成員屬性...

問題1 :默認初始化程序有什么特別之處,為什么它不能簡單地稱為默認初始化程序? 為什么要添加“成員”? 是因為它列出了Structure中定義的所有成員屬性。 並且您還必須在創建實例時遵循結構內定義的順序。

問題2是否有其他特殊的初始化者有自己的特殊名稱? 如果是這樣,他們看起來像什么。

[注釋第一部分:]與Vadian先生進一步討論

在此輸入圖像描述

[注意第二部分:]

在此輸入圖像描述

關於問題1:

斯威夫特有一項不可撤銷的法律:

在創建該類或結構的實例時,類和結構必須將其所有存儲的屬性設置為適當的初始值。 存儲的屬性不能保留在不確定的狀態。

我們正在討論結構

創建結構時 ,如果所有屬性都具有默認值,則可以使用默認初始值設定項 (括號對)。

如果您只聲明沒有默認值的屬性,編譯器會創建一個隱式的成員初始化程序 - 您必須使用它 - 以確保以非常方便的方式為每個屬性分配默認值

這似乎主要是基於意見,並不適合SO,但這是我的2美分:

  1. 默認聽起來很像指定 ,這是一個完全正交的概念。

  2. 不是“特殊”,但至少有兩種不同的初始化器: 指定方便

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM