簡體   English   中英

如何從通用擴展中返回 Swift 泛型?

[英]How can I return a Swift generic from a general extension?

如果我有一個這樣的通用類:

class Generic<T: Any> {
    var object: T
    init(object: T) {
        self.object = object
    }
}

我可以像這樣從初始化程序訪問對象:

Generic(object: "Hello World").object.count // 11

由於這個泛型類適用於Any類型,我將如何擴展所有類型以返回該泛型類的對象?

我的意思是這樣的:

extension Any {
    var generic: Generic<Self> {
        Generic(object: self)
    }
}

所以我可以打電話:

"Hello World".generic.object.count // 11

我對所有的AnyAnyObjectSelfselfType等感到困惑。

更新:

例如,我將如何使用計算屬性array: Array<Comparable>擴展所有Comparable array: Array<Comparable> 我在想類似的事情:

extension Comparable {
    var array: Array<Comparable> {
        Array(self)
    }
}

您不能擴展 Any,請參閱https://stackoverflow.com/a/44396546/12846974

可比擴展示例:

extension Comparable {
    var array: Array<Self> {
        [self]
    }
}

暫無
暫無

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

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