gpt4 book ai didi

swift - 具有特定类型元素的 CollectionType 扩展会忽略子类型

转载 作者:行者123 更新时间:2023-11-30 10:12:16 26 4
gpt4 key购买 nike

我正在尝试为包含特定类型 FooType 的元素的集合类型创建扩展,这工作得很好:

extension CollectionType where Generator.Element == FooClass
{
func doSomething()
}

let collectionType = [FooClass]()
collectionType.doSomething()

我的问题是我还希望此扩展适用于包含 Foo 类的子类的集合类型:

let collectionType = [FooSubclass]()
collectionType.doSomething() // Doesn't work

我可能会覆盖“==”运算符并循环遍历 super 类链,直到找到匹配项,但不确定这是否是正确的方法。

public func ==(t0: Any.Type?, t1: Any.Type?) -> Bool

我的 where 子句中是否遗漏了一些可以解决此问题的内容,或者我这样做完全错误吗?

最佳答案

使用:而不是==

尝试:

extension CollectionType where Generator.Element: FooClass {

关于swift - 具有特定类型元素的 CollectionType 扩展会忽略子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32313103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com