swift - Swift 中 'is' 和 'as' 关键字的区别

标签 swift

我是 Swift 的新手,正在尝试学习关键字“is”和“as”的概念。我理解“is”是类型检查运算符(检查变量是否属于某个子类),而“as”是类型转换运算符(将变量向下转换为其子类)。

但是,我的问题是这两个关键字是否在某些领域可以互换使用,而在某些领域是否不能互换使用。

最佳答案

以下基本相同:

if let _ = myObject as? SomeClass ...
if myObject is SomeClass ...

唯一真正的区别是 as 将它转换为结果类供您使用。在上面的代码中,我使用了占位符“_”,这意味着我并不真的想要结果。由于 if let 结构,您会发现在 Swift 中不像在其他语言中那样频繁地使用 is。例如:

if let mySomeClass = myObject as? SomeClass {
    // Now I know mySomeClass is a SomeClass so I can use it.
}

关于swift - Swift 中 'is' 和 'as' 关键字的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35388549/

相关文章:

ios - 无法计算出可垂直扩展的 UITableViewCells 来显示按钮

ios - 类型 'UIImageView' 的值在 swift 4 中没有成员 'kf'

ios - 如何让用户在保存时自定义文件名?

ios - UITableView:从 TableViewController 中分离数据源并分配#selector

swift - 获取 SKSpriteNode 的位置

ios - 通过 TableView 单元格 iOS swift 操作数据

ios - 通过在 iOS 中点击弹出 View 之外的任意位置来设置选择器值

Swift 冲突的 UIPickerView

ios - 如何在早上 8 点发出每日通知? ( swift 3)

ios - Swift 3 集合运算减法