作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在下面的代码中,通过 as!
向下转型对于同一类型是失败的。Swift 是否不允许对同一类型进行向下转换?
class base {
var a = 1
}
class derived : base {
}
let a: base? = base()
let b = a as! base // error occur!
println("\(b.a)")
错误信息:错误:从'base' 沮丧? 'base' 只解包选项;您是要使用“!”吗?
让 b = a 作为!根据
~^~~~~
如果我像下面这样修改上面的代码,就没有问题。
let a: base? = derived()
let b = a as! derived
println("\(b.a)")
最佳答案
这是DownCasting
在swift中的定义
Downcasting
A constant or variable of a certain class type may actually refer to an instance of a subclass behind the scenes. Where you believe this is the case, you can try to downcast to the subclass type with a type cast operator (as? or as!).
因此,如果类型相同,则不是 DownCasting。
关于ios - 怎么被as的垂头丧气了!为同一类型工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31016849/
我在这里遇到了这种棘手的情况,所以基本上我被要求编写一个函数,如果我点击的点位于图中,则返回指向该图的指针,如果该点不在任何图中,则返回 null。 CFigure *ApplicationManag
我是一名优秀的程序员,十分优秀!