associated-types相关内容

SWIFT关联类型和协议继承

我使用的是SWIFT 2.2,我声明了一个具有关联类型的协议,如下所示: protocol CollectionViewModeling { associatedtype CellType func cellAtIndexPath(indexPath: NSIndexPath) -> CellType } 现在我有了一个符合上述协议的视图模型协议: enum MyI ..
发布时间:2022-03-28 20:14:53 移动开发

在 Swift 中,如何转换为具有关联类型的协议?

在下面的代码中,我想测试 x 是否是 SpecialController.如果是,我想将 currentValue 作为 SpecialValue.你怎么做到这一点?如果不是用演员表,那就是其他一些技巧. 那里的最后一行不会编译.有错误是:Protocol "SpecialController" 只能用作泛型约束,因为它有 Self 或相关的类型要求. protocol SpecialCo ..
发布时间:2022-01-01 11:25:49 移动开发

为什么我们不能转换为具有关联类型的协议类型,但使用泛型实现相同的效果?

考虑这个代码: 扩展集合{func foo() ->整数{如果 self.first 是 Collection {return (self.first as! Collection).underestimatedCount//错误}别的 {返回 self.underestimatedCount}}} 我们得到了可怕的、显然令人困惑的: 协议“Collection"只能用作通用约束,因为它 ..

无法在 Swift 中的另一个协议中使用协议作为关联类型

我有一个协议,Address,它继承自另一个协议,Validator,Address 实现了Validator> 扩展中的要求. 还有另一个协议,FromRepresentable,它有一个 associatedType (ValueWrapper) 要求,它应该是 Validator. 现在,如果我尝试使用 Address 作为 associatedType,那么它不会编译.它说, ..
发布时间:2021-12-02 15:49:12 移动开发

在继承自另一个特征的特征中指定关联类型

我开始着手我的第一个更雄心勃勃的 Rust 项目,并努力解决我在用于学习的任何资源和教程中都没有遇到的问题.问题的标题捕获了抽象问题,但对于示例,我将使用我正在与之抗争的具体示例. 对于我的项目,我需要与不同的第三方服务进行交互,我决定使用actix 框架作为我领域中不同参与者的抽象.框架定义了必须实现的 Actor trait: 使用actix::prelude::*;struct My ..
发布时间:2021-09-09 19:05:04 其他开发

Swift 3 中的 Any 、 Hashable 、 AnyHashable 有什么区别?

我通过大量教程摸索以了解上述 3 个术语之间的区别并找到新术语 type erased 容器,现在这让我感到困惑.这引发了很多问题. 为什么 Swift 引入了 AnyHashable ? 这三个术语之间的根本区别是什么? Any 和 AnyHashable 的区别? Hashable 和 AnyHashable 的区别? 何时使用 Hashable 以及何时使用 A ..
发布时间:2021-09-02 18:33:14 移动开发

类型X不继承自Y

以下Swift代码在最后一行产生此错误:Type 'E' does not inherit from 'C'.不知道这是怎么回事.任何线索将不胜感激. class C {} protocol P { typealias E : C } class A : P { typealias E = C } class S {} clas ..
发布时间:2020-06-21 18:47:48 移动开发

对集合扩展功能的歧义调用

编译器告诉我 Expression type '([String]) -> Bool' is ambiguous without more context 我不确定如何在语句中添加更多上下文.我以为扩展声明会告诉函数它所需的有关集合中元素的所有信息.我在代码片段中留下了更多的想法.查找标记为"!!! COMPILE ERROR !!!"的区域 您应该能够将代码复制并粘贴到一个空项目 ..
发布时间:2020-06-21 18:47:43 移动开发

如何获得具有泛型类型的类接受相同泛型类型不同的数组?

我正在尝试快速学习和理解具有关联类型的协议. 与此同时,我正在学习SwiftUI并参加有关Udemy的课程. 我们将构建的应用程序是咖啡订单应用程序. 话虽如此,我不会按照教程"T"进行操作,因为我尝试以不同的方式构建应用程序,因此我可以学习自己思考.该应用程序太花哨了. 本教程不使用泛型和协议来表示或结构化数据.这只是展示SwiftUI的教程. 我创建了一个名为Co ..
发布时间:2020-06-21 18:47:39 移动开发

有什么方法可以在Rust中模拟泛型关联类型/关联类型构造函数?

我正在Rust中制作一个图形处理模块.该模块的核心对具有多个容器的想法进行了建模,这些容器将数据保存在图中.例如,我可能有一个内部结构为HashMap或AdjacencyMatrix等的图. 这些容器必须实现一个特征: trait GraphData { fn has_edge(&self, v: &V, u: &V) -> bool; fn nodes(&sel ..
发布时间:2020-06-21 18:47:37 其他开发

在委托协议中为通用类型使用associatedtype

我有一个Game类.之所以将其设为通用,是因为我需要支持不同类型的电路板.现在,我只想添加一个经典的iOS风格的委托,其方法将以游戏和新的points值作为参数.如何以Swift associatedtype的方式实现这一目标?我真的很困惑,我无法实现这种简单的逻辑. protocol GamePointsDelegate { associatedtype B: Board ..
发布时间:2020-06-21 18:47:30 移动开发

实施具有不同关联类型的协议

我有一个协议,我的快速代码库,我有一个具有关联类型和两种方法的协议.两种方法都为协议的关联类型定义了不同的通用约束.而且我想使该结构符合两种协议,但具有两种不同的关联类型. protocol Convertable { associatedtype TargetType func convert() -> TargetType } func show ..
发布时间:2020-06-21 18:47:23 移动开发