Một interface trong Go định nghĩa một tập các chữ ký method — một hợp đồng về hành vi. Quan trọng là interface được thỏa mãn một cách ngầm định (implicitly): bất kỳ kiểu nào có các method đó đều tự động thỏa mãn interface, không cần khai báo "implements" tường minh. Cách tiếp cận theo cấu trúc, kiểu duck-typing này là đặc trưng và mạnh mẽ.
Định nghĩa và hiện thực ngầm định một interface
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
