Sự khác biệt giữa Upcast và Downcast trong Swift là gì?
Sự khác biệt giữa Upcast và Downcast trong Swift là gì?
Trong Swift, Upcast và Downcast là hai phương thức chuyển đổi kiểu dữ liệu của đối tượng trong cùng một hệ thống phân cấp lớp (class hierarchy). Upcast là quá trình chuyển đổi một instance của subclass (lớp con) thành superclass (lớp cha) của nó. Quá trình này luôn an toàn vì mọi subclass đều là một instance của superclass của nó. Downcast là quá trình ngược lại, chuyển đổi từ superclass xuống subclass. Downcast không phải lúc nào cũng an toàn vì không phải mọi instance của superclass đều có thể là instance của một subclass cụ thể
Swift cung cấp các toán tử as
, as?
, và as!
để thực hiện upcasting và downcasting:
as
được sử dụng cho upcasting, tức là chuyển đổi một instance của subclass lên superclass mà không cần kiểm tra hay xử lý lỗi vì nó luôn đảm bảo thành côngas?
được sử dụng cho downcasting và trả về một giá trị optional. Nếu việc chuyển đổi không thành công, giá trị trả về sẽ là nil
. Điều này giúp việc downcasting trở nên an toàn hơn vì bạn có thể kiểm tra giá trị trả về trước khi sử dụng nóas!
cũng được sử dụng cho downcasting nhưng nó buộc phải giải nén kết quả (force-unwrap). Nếu downcast không thành công, ứng dụng sẽ bị crash. D...middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào