2017-01-10 66 views
2

我試圖擴展已經在struct中的struct。當我寫下面的代碼,我得到擴展在另一個結構內的結構

聲明只在文件範圍有效。

struct A { 
    struct AA { 

    } 
} 

extension A { 
    extension AA { 

    } 
} 

它是無效的編寫擴展內部的延伸?

+2

[語言指南的相關部分(https://developer.apple.com工作/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/doc/uid/TP40014097-CH34-ID378):*「擴展聲明不能包含deinitializer或協議聲明,存儲的屬性,屬性觀察器,**或其他擴展聲明***「 – Hamish

+0

@Hamish正確,但沒有任何相關性。 – Raphael

+0

@Raphael鑑於OP詢問的唯一明確問題是「*在擴展中寫入擴展是否無效?*」 - 我會說這非常相關。 – Hamish

回答

7

好像做到這一點的唯一方法是:

extension A.AA 
{ 
    func test() 
    { 
     print("Test") 
    } 
} 

它只是在我的操場