5
行,所以我有这样定义了一些类:为什么我可以用泛型快速制作相同类型的需求?有什么办法吗?
public final class Process<InputType, OutputType, Memory>
,我想借此让该功能仅适用于情况下的inputType和 输出类型是完全相同的类型。 于是,我就这样像这样:
extension Process where InputType == OutputType { }
但是,这会导致:
相同类型的要求使得泛型参数
InputType
和OutputType
相当于
于是我”已经走了很远,并试图这样做:
func bypass<SameType>() -> Process<SameType, SameType, Memory> where OutputType == InputType {}
但是这会导致完全相同的错误。 所以问题是为什么我不能以这种方式定义泛型,使得两个泛型类型是等价的,因为这正是我想要的。我想定义只适用于这种情况的函数,如果不遵循这个规则,那么在编译时会失败。
所以现在我使用的是这样的:
public static func bypass<SameType>() -> Process<SameType, SameType, Memory>
这将最终只能在运行时失败,而不是创建即使但当具体的类被触发的行动。
有没有什么办法可以为extension
或function
定义相同类型的通用参数,而这些通用参数只是不编译(导致编译时错误)?
更新:实现的一些细节被遗漏的原因会使得代码不可读的,他们是不是上下文
感谢这个完全解决我的问题,直到雨燕4来 –