[英]Why is it necessary to refer to self for the Identifiable protocol?
在蘋果的 Identifiable 實現中
所需的 function 是
associatedtype ID
var id: Self.ID { get }
為什么需要自我? 那和有什么區別
associatedtype ID
var id: ID { get }
我認為這只是 Apple 在編寫文檔時使用的約定。 他們用Self.
字首。 示例: 1 、 2 、 3 。 這是為了清楚什么是關聯類型,什么不是。 如果Identifiable.id
的聲明改為如下所示:
var id: ID { get }
對於以前從未使用過 SwiftUI 的人來說,不清楚ID
是完全獨立的頂級類型還是關聯類型。 但是,如果它表示Self.ID
,則很明顯ID
是協議的關聯類型。
除此之外, Self.
前綴並不意味着什么特別的。 就像self.
引用實例成員時的前綴。 在大多數情況下它是可選的。 就像self.
前綴,你可能需要Self.
在某些情況下解決名稱沖突,但我現在想不起來。
Apple 似乎也有嵌套類型的約定 - 總是寫出OuterTypeName.InnerTypeName
,而InnerTypeName
就足夠了。 示例:
var keyDecodingStrategy: JSONDecoder.KeyDecodingStrategy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.