Câu hỏi phỏng vấn Swift
Câu hỏi

Sự khác biệt giữa UpcastDowncast trong Swift là gì?

Câu trả lời

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:

  • Toán tử 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ông
  • Toán tử as? đượ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ó
  • Toán tử 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

middle

Gợi ý câu hỏi phỏng vấn

middle

Typecasting trong Swift là gì?

middle

Làm cách nào để sắp xếp một custom objects theo giá trị thuộc tính trong Swift?

senior

Thuộc tính autoclosure là gì và khi nào nên sử dụng nó trong Swift?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào