class Vehicle { }
class Car: Vehicle {
func test() {
print("test Car \(self)")
}
}
func example() {
let cars = [Car(), Car()]
test(vehicles: cars)
}
func test(vehicles: [Vehicle]) {
switch vehicles {
case let cars as [Car]:
for car in cars {
car.test()
}
default:
print("Nothing to test!")
}
}
| До Swift 5.8 это приводило к ошибке «Collection downcast in cast pattern is not implemented; use an explicit downcast to '[Car]' instead». |