Thuốc generic ở Golang

Tram Ho

Kể từ phiên bản Golang 1.18, tính năng dự kiến ​​có tên generics sẽ được thêm vào ngôn ngữ. Chúng tôi sẽ thực hành tính năng này, từ cách tiếp cận cũ trong Go trước phiên bản 1.18 (ví dụ: phiên bản 1.17), sau đó chúng tôi sử dụng tính năng tổng quát hỗ trợ cú pháp mới. Trong các đoạn mã dưới đây, chúng tôi sử dụng phiên bản Golang mới nhất tại thời điểm viết (Phiên bản Go 1.20.2)

Thêm sinh viên theo tên đầy đủ

Cách cũ (Golang 1.17): Thêm sinh viên theo mảng, lát mà không cần tổng quát

Thêm sinh viên theo id

Thêm sinh viên theo cấu trúc

Thêm sinh viên theo thuốc generic

Chúng ta cần xác định giao diện theo cách này: Bất kỳ loại nào triển khai hàm String() đều có thể được coi là thuộc loại Stringer .

Nhỏ gọn hơn: loại bỏ khai báo kiểu rõ ràng của hàm chung

Loại lỏng lẻo theo từ khóa any trong hàm generic

Phần kết luận

Chúng tôi trải qua các giai đoạn:

  1. Thêm Sinh viên bằng các hàm riêng biệt theo kiểu dữ liệu cụ thể: số nguyên, chuỗi, cấu trúc
  2. Xác định giao diện, sau đó sử dụng Generics
  3. Sử dụng Generics và loại bỏ loại rõ ràng (cú pháp nhỏ gọn)
  4. Sử dụng Generics để nới lỏng nhất bằng cách sử dụng khóa any , không hạn chế đối với một số loại cụ thể, cho tất cả các loại. Lợi ích chúng ta đã thấy, mã nguồn trở nên gọn nhẹ, có thể tái sử dụng dễ dàng.
Chia sẻ bài viết ngay

Nguồn bài viết : Viblo