[Swift tricks] Preserving Initializers

    Làm thế nào để tạo custom initializer và vẫn giữ được default initializer của structure?

    Trong bài viết này, chúng ta cùng sẽ dùng 1 struct Person để làm ví dụ. Struct này có 2 constant property là firstlast.

    Swift sẽ tự động tạo cho chúng ta một default initializer, init(first:last:), và tất nhiên chúng ta có thể sử dụng initializer này để tạo 1 instance của struct Person:

    Nhưng trong thực tế sẽ có lúc initializer được tạo tự động này không đủ để đáp ứng nhu cầu. Trong trường hợp đó chúng ta có thể tạo 1 custom initializer:

    Tuy nhiên, nếu chúng ta tạo 1 custom initializer, thì default initializer sẽ không còn dùng được nữa:

    Giả sử trong một số hoàn cảnh nhất định, việc sử dụng default initializer sẽ tiện hơn cho việc tạo ra 1 instance của struct Person, sẽ thật tốt nếu chúng ta có thể sử dụng cả 2 initializer trên cho struct Person đúng không.

    Rất may, Swift cung cấp cho chúng ta một cách để đạt được điều này. Chúng ta chỉ cần tạo 1 extension cho struct Person, và đặt custom initializer của chúng ta vào đó.

    Lúc này cả 2 initializer đều có thể được sử dụng để tạo instance của struct Person rồi.

    Hi vọng bài viết của mình đã giúp các bạn có thêm 1 công cụ hữu ích khi code Swift.

Nguồn: Viblo

Bình luận
Vui lòng đăng nhập để bình luận
Một số bài viết liên quan