用类型检查操作符(is
)来检查一个实例是否属于特定子类型。若实例属于那个子类型,类型检查操作符返回 true
,否则返回 false
。
下面的例子定义了两个变量,movieCount
和 songCount
,用来计算数组 library
中 Movie
和 Song
类型的实例数量:
var movieCount = 0
var songCount = 0
for item in library {
if item is Movie {
movieCount += 1
} else if item is Song {
songCount += 1
}
}
print("Media library contains \(movieCount) movies and \(songCount) songs")
// 打印“Media library contains 2 movies and 3 songs”
示例迭代了数组 library
中的所有项。每一次,for-in
循环设置 item
常量为数组中的下一个 MediaItem
实例。
若当前 MediaItem
是一个 Movie
类型的实例,item is Movie
返回 true
,否则返回 false
。同样的,item is Song
检查 item
是否为 Song
类型的实例。在循环结束后,movieCount
和 songCount
的值就是被找到的属于各自类型的实例的数量。