簡體   English   中英

將非泛型擴展為泛型類型

[英]Extending a non-Generic to a generic type

我有這段代碼代表一個非通用的Struct:

struct rum {
    var prop = "Hello"
}

假設我需要為此Struct創建一個擴展以接收通用類型。 為此,我嘗試以下代碼:

extension rum <T>{

    func release(bo: T){
        println(T)
    }

}

但是Xcode給了我很多錯誤,因為朗姆酒沒有通用類型。 但是這個想法是創建一個非通用的Struct並將其轉換為通用的。 可能嗎?

如果rum是一個類,您將獲得更大的靈活性,因為您可以從中繼承泛型類,並在該泛型類上定義擴展。 但是, struct是一個值類型,因此您不能從它派生一個類。

由於rum不是通用struct ,因此需要使擴展方法通用,如下所示:

extension rum {

    func release<T>(bo: T){
        println(prop)
        println(bo)
    }

}

不幸的是,這意味着您希望通用的所有擴展方法都必須用<T>裝飾。

暫無
暫無

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

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