我是Swift的新手,我正在努力学习关键字' as!'的概念。我在下面的代码中看到了Swift Programming Language 2.1'
我的问题是,someObjects中的电影代码是怎样的! [动画]'应该阅读。某些对象中的电影是'首先评估或者将某些对象作为! [动画]'首先评估部分代码?
for movie in someObjects as! [Movie] {
print("Movie: '\(movie.name)', dir. \(movie.director)")
}
答案 0 :(得分:1)
在下面的代码中:
for movie in someObjects as! [Movie] {
print("Movie: '\(movie.name)', dir. \(movie.director)")
}
首先执行as
,因此您获得someObjects as! [Movie]
。 "!"说你保证someObjects是一个Movie
的数组而不是其他东西而不是零。
答案 1 :(得分:1)
for movie in someObjects as! [Movie] {
print("Movie: '\(movie.name)', dir. \(movie.director)")
}
这评估为休耕:
movie
是列表中的“单数”对象
someObjects
“复数”
所以someObjects是[可序]然后是
as! [Movie]
只是告诉编译器它是类型的
[Movie]
这与Objective C类似
isTypeOfClass
并使这些陈述成为可能
movie.name
和
movie.director
进行评估,因为我们知道它属于类型
[Movie]
和电影都有名称属性和导演属性。
如果您有更多问题,我希望有帮助让我知道。