Swift Typealias: Cách sử dụng chúng và Tại sao?

Trong bài viết này, bạn sẽ tìm hiểu về typealias và các trường hợp sử dụng của nó trong Swift.

Bí danh kiểu cho phép bạn cung cấp tên mới cho kiểu dữ liệu hiện có vào chương trình của mình. Sau khi một bí danh kiểu được khai báo, tên bí danh đó có thể được sử dụng thay cho kiểu hiện có trong suốt chương trình.

Loại bí danh không tạo ra loại mới. Họ chỉ cần cung cấp một tên mới cho một loại hiện có.

Mục đích chính typealiaslà làm cho mã của chúng tôi dễ đọc hơn và rõ ràng hơn trong ngữ cảnh để con người hiểu được.

Làm thế nào để tạo một typealias?

Nó được khai báo bằng từ khóa typealiaslà:

 typealias name = loại hiện có

Trong Swift, bạn có thể sử dụng typealiascho hầu hết các loại. Chúng có thể là:

  • Các loại cài sẵn (ví dụ: String, Int)
  • Các kiểu do người dùng xác định (for.eg: class, struct, enum)
  • Các kiểu phức tạp (ví dụ: bao đóng)

Typealias cho các loại cài sẵn

Bạn có thể sử dụng typealias cho tất cả các Kiểu dữ liệu được tạo sẵn như Chuỗi, Int, Float, v.v.

Ví dụ:

 typealias StudentName = String

Khai báo trên cho phép StudentName được sử dụng ở mọi nơi thay vì String. Vì vậy, nếu bạn muốn tạo một chuỗi kiểu hằng số nhưng biểu diễn giống tên sinh viên hơn. Bạn có thể làm như:

 để tên: StudentName = "Jack"

Không sử dụng typealias, bạn nên khai báo hằng số kiểu chuỗi là:

 để tên: String = "Jack"

Trên cả hai ví dụ đều tạo ra một hằng số kiểu String. Nhưng khai báo với typealias, mã của chúng ta trở nên dễ đọc hơn.

Typealias cho các loại do người dùng xác định

Có nhiều trường hợp bạn cần tạo kiểu dữ liệu của riêng mình. Giả sử bạn muốn tạo một Kiểu đại diện cho Sinh viên, bạn có thể tạo nó bằng cách sử dụng một lớp là:

 class Student ( ) 

Bây giờ một nhóm sinh viên có thể được biểu diễn dưới dạng một mảng như sau:

 var sinh viên: Array = ()

Khai báo trên có thể dễ đọc hơn bằng cách tạo kiểu của riêng bạn để Arraysử dụng typealiasnhư:

 typealias Students = Mảng

Bây giờ chúng ta có thể làm cho mã của mình dễ đọc hơn như:

 var sinh viên: Sinh viên = ()

Typealias cho các loại phức tạp

Hãy phân tích thêm một ví dụ. Giả sử chúng ta có một phương thức nhận bao đóng làm tham số đầu vào.

Đừng lo lắng nếu bạn không biết về việc đóng cửa. Chỉ cần nghĩ về nó như một loại chức năng đặc biệt. Chúng tôi đã giải thích chi tiết về nó trong bài viết: Swift đóng.

 func someMethod(oncomp:(Int)->(String))( ) 

Ví dụ trên lấy một bao đóng làm đầu vào someMethod. Việc đóng cửa nhận một Intgiá trị và trả về String.

Bạn có thể thấy việc sử dụng (Int)->(String)ít có ý nghĩa hơn đối với người đọc. Bạn có thể sử dụng typealiasđể đặt tên mới cho nó:

 typealias CompletionHandler = (Int) -> (Chuỗi)

Bây giờ bạn có thể viết lại phương thức dưới dạng:

 func someMethod(oncomp:CompletionHandler)( )

Chúng ta có thể thấy mã tương tự trông rõ ràng hơn và lập trình viên thân thiện với việc sử dụng typealias.

thú vị bài viết...