本文介绍了泛型类型符合Swift中的协议的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有可能要求泛型类型的具体实例符合Swift中的协议?

例如,假设我有一个名为<$ c $的泛型C>东西< T> 。我希望 Thing< Int> 符合特定协议,但不符合 Thing< T>

解决方案

好吧,它可能不会太繁琐,而且可能已经很明显,您已经忽略了它,但是您可以创建一个特定

  class ThingOfInt:Thing< Int> SpecialIntProtocol {
// //实现一个泛型类型的实例化SpecialIntProtocol(如果它不是已经在扩展中实现的

}

或者更通用:

 类IntThing< T:IntegerType> :MyThing< T>,SpecialIntProtocol {
}


Is it possible to require that specific instantiations of generic types conform to a protocol in Swift?

For example, say I have a generic type called Thing<T>. I want Thing<Int> to conform to a certain protocol, but not Thing<T>.

解决方案

Well, it might not be too onerous, and it might be obvious enough that you've ignored it, but you could make a 'specific instantiation of a generic type' - as:

class ThingOfInt : Thing<Int>, SpecialIntProtocol {
 // implement SpecialIntProtocol (if it isn't already 
 // implemented in an extension)
}

or with a bit more generality:

class IntThing<T:IntegerType> : MyThing<T>, SpecialIntProtocol {
}

这篇关于泛型类型符合Swift中的协议的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 04:01