Swift提供了is
关键字(和as?
)检查对象是否可以成功向下转换:
if foo is MyClass {
// ...
}
而且NSObjectProtocol
还提供了原文func isKindOfClass(aClass: AnyClass!) -> Bool
:
if something.isKindOfClass(MyClass) {
// ...
}
对于符合的类NSObjectProtocol
,这真的有很大不同吗?
是的,
这是有区别的:is
在Swift中可以与任何类一起使用,而isKindOfClass()
只能与属于NSObject
或实现的那些类一起使用NSObjectProtocol
。
问题内容: 和功能之间有什么区别?我知道这有点小,一个是全局的,另一个是完全匹配的类,但是我需要有人指定哪个是哪个。 在Swift 和。 问题答案: 返回接收方 是 指定类的实例 还是 从指定类 继承 的任何类的实例。 当且仅当接收者 是 指定类 的实例 时返回。 大多数情况下,您要用来确保代码也可用于子类。 《NSObject协议参考》进一步讨论了这些方法。
问题内容: 在Python中,以下两个相等测试是否等效? 这是否适用于你要比较实例(a list say)的对象? 好的,这样可以回答我的问题: 因此,测试重视在哪里进行测试以查看它们是否是同一对象? 问题答案: 如果两个变量指向同一个对象,则返回;如果变量引用的对象相等,则返回。 在你的例子中,第二个测试只起作用,因为Python缓存小整数对象,这是一个实现细节。对于较大的整数,这不起作用: 字
问题内容: 我的Google-fu使我失败了。 在Python中,以下两个相等测试是否等效? 这是否适用于您要比较实例(list说)的对象? 好的,这样可以回答我的问题: 因此,==测试重视在哪里is进行测试以查看它们是否是同一对象? 问题答案: 如果两个变量指向同一个对象(如果变量引用的对象相等),则将返回。 在您的情况下,第二个测试仅能工作,因为Python会缓存小的整数对象,这是实现细节。对
问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型
本文向大家介绍is和==的区别相关面试题,主要包含被问及is和==的区别时的应答技巧和注意事项,需要的朋友参考一下
问题内容: 和PHP 之间有区别吗? 问题答案: 的运算符比较值,而操作者以及比较型。 这意味着: