Tôi đang cố gắng thực hiện các thao tác sau.Cấu trúc đúc với thông số chung với swift
protocol Vehicle {
}
class Car : Vehicle {
}
class VehicleContainer<V: Vehicle> {
}
let carContainer = VehicleContainer<Car>()
let vehicleContainer = carContainer as VehicleContainer<Vehicle>
Nhưng tôi nhận được lỗi biên dịch trên dòng cuối cùng:
'Car' is not identical to 'Vehicle'
Có workaround cho điều này?
Ngoài ra tôi tin rằng loại đúc này nên có thể bởi vì tôi có thể làm điều đó với Mảng được xây dựng trên generics. Các công trình sau đây:
let carArray = Array<Car>()
let vehicleArray = carArray as Array<Vehicle>
Không chắc chắn điều này có liên quan gì không, nhưng 'Array' là một loại giá trị. Hãy thử cải cách hệ thống phân cấp ở trên của bạn về 'struct' và xem liệu bạn có gặp lỗi tương tự hay không. – martineno
Vâng, tôi đã thử rằng với VehicleContainer như là một cấu trúc và nó cho cùng một lỗi – hoddez
bạn đã bao giờ con số này ra? – joslinm