开放类型List<>和IEnumerable<>?之间有什么关系吗?
例:
var type1 = typeof(List<>);
var type2 = typeof(IEnumerable<>);
//return false
type2.IsAssignableFrom(type1);
Run Code Online (Sandbox Code Playgroud)
有没有任何方法可以检查两种开放类型之间的关系,或者关系只存在于封闭类型上?
我有一个像thies {"test":"test"}的json对象,但是如果我将它转换为SwfiftyJSON.JSON对象,然后我通过函数rawString()获取rawstring,那么我将rawstring转换为json对象,但遗憾的是,我无法获得正确的json对象,如果我尝试获取"test"属性或任何其他属性,它总是返回nil,有什么问题?
我是一个快速的初学者。学习的时候有件事让我很困惑。现在我想定义一个抽象类或定义一些纯虚方法,但我找不到方法来做到这一点。我有一个带有关联类型的协议(这也让我困惑,为什么不使用泛型协议),并且一些方法需要在基类中实现,而从基类继承的其他类,它们应该实现协议中的其他方法,我能怎么做?例如:
Protocol P{
typealias TypeParam
func A()
func B()
}
class BaseClass<TypeParam> : P {
abstract func A()
func B(){
if someCondition {
A()
}
}
}
class ChildClass : BaseClass<Int> {
func A(){}
}
Run Code Online (Sandbox Code Playgroud)
看起来很奇怪,我仍然找不到解决抽象问题的方法。