Swift语法中的“as”有什么功能?
发布时间:2020-12-14 04:47:38 所属栏目:百科 来源:网络整理
导读:最近我偶然发现了一个我无法找到引用的语法: Swift语法中的含义是什么? 像: var touch = touches.anyObject() as UITouch! 不幸的是,很难找到像这样的单词,所以我没有在Apple的Swift Programming Language手册中找到它.也许有人可以引导我到正确的段落?
最近我偶然发现了一个我无法找到引用的语法:
Swift语法中的含义是什么?
像: var touch = touches.anyObject() as UITouch! 不幸的是,很难找到像这样的单词,所以我没有在Apple的Swift Programming Language手册中找到它.也许有人可以引导我到正确的段落? 为什么元素一如既往地有!表示打开一个可选的? 谢谢! 解决方法as keyword用于将对象转换为另一种类型的对象.为此,该类必须可转换为该类型.
例如,这有效: let myInt: Int = 0.5 as Int // Double is convertible to Int 但是,这不是: let myStr String = 0.5 as String // Double is not convertible to String 您还可以使用?执行可选的强制转换(常用于if-let语句).操作符: if let myStr: String = myDict.valueForKey("theString") as? String { // Successful cast } else { // Unsuccessful cast } 在你的情况下,触摸是(我假设从anyObject()调用)NSSet.因为NSSet.anyObject()返回AnyObject ?,所以必须将结果转换为UITouch才能使用它. 在该示例中,如果anyObject()返回nil,则应用程序将崩溃,因为您正在强制转换为UITouch! (明确解开).更安全的方式是这样的: if let touch: UITouch = touches.anyObject() as? UITouch { // Continue } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |