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

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

Câu trả lời

Trong Swift, init?()init() đều là các phương thức khởi tạo (initializers) nhưng chúng có một số điểm khác biệt quan trọng:

  1. init():

    • init() là một phương thức khởi tạo thông thường, được sử dụng để khởi tạo một instance mới của một lớp, cấu trúc hoặc liệt kê. Phương thức này đảm bảo rằng tất cả các thuộc tính được lưu trữ của instance đều nhận được giá trị ban đầu trước khi hoàn thành quá trình khởi tạo.
    • Khi sử dụng init(), bạn phải đảm bảo rằng tất cả các thuộc tính của đối tượng đều được khởi tạo một cách hợp lệ trước khi khởi tạo hoàn tất. Nếu không, mã sẽ không biên dịch.
  2. init?():

    • init?() là một phương thức khởi tạo có thể thất bại, được gọi là failable initializer. Nó có thể trả về nil nếu quá trình khởi tạo không thành công do dữ liệu đầu vào không hợp lệ hoặc không đủ điều kiện.
    • Sử dụng init?() khi có khả năng quá trình khởi tạo có thể không thành công. Ví dụ, khi bạn cố gắng khởi tạo một đối tượng từ dữ liệu đầu vào không chắc chắn hoặc từ một chuỗi có thể không đúng...
expert

expert

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

middle

Khi nào sử dụng thuộc tính @objc trong Swift?

middle

Thuộc tính lazy trong Swift để làm gì?

middle

Sự khác biệt giữa hàm (function)phương thức (method) trong Swift là gì?

Bình luận

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

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