Menu
CoddyTech

Interface là gì?

Thuộc phần Logic và luồng điều khiển trong hành trình GO của Coddy. Bài học 12 trên 68.

Interface trong Go giống như một hợp đồng xác định một kiểu dữ liệu phải có những hành vi nào, mà không quy định cách triển khai những hành vi đó. Bạn có thể hình dung interface là một tập hợp các chữ ký phương thức mô tả những gì một thứ có thể làm.

Để hiểu rõ hơn về giao diện, hãy tưởng tượng một ổ cắm điện trong nhà bạn.

Ổ cắm có hình dạng cụ thể và cung cấp điện, nhưng nó không quan tâm bạn cắm thiết bị nào vào. Dù đó là đèn, bộ sạc điện thoại hay máy tính, bất kỳ thiết bị nào có phích cắm phù hợp đều có thể kết nối và nhận điện. Ổ cắm xác định “giao diện”, tức là các yêu cầu để kết nối.

Trong Go, interface cũng hoạt động tương tự. Interface định nghĩa một tập hợp chữ ký phương thức mà một kiểu dữ liệu phải có để “kết nối” với interface đó. Bất kỳ kiểu dữ liệu nào có đủ các phương thức bắt buộc đều tự động đáp ứng interface, bất kể kiểu dữ liệu đó còn làm gì khác hoặc triển khai các phương thức ấy như thế nào.

Khái niệm này rất hữu ích vì nó cho phép bạn viết code hoạt động với mọi kiểu dữ liệu có thể thực hiện một số hành vi nhất định, giúp chương trình linh hoạt và có thể tái sử dụng hơn. Cũng như nhiều thiết bị khác nhau đều có thể dùng chung một ổ cắm điện, các kiểu dữ liệu Go khác nhau đều có thể thỏa mãn cùng một interface, miễn là chúng có đủ các phương thức cần thiết.

Tự làm thử

Bài học này không có thử thách code.

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng điều khiển

Tự luyện tập: Trình biên dịch Go online