interface ของ Go กำหนดชุดของ method signature — เป็นสัญญาของพฤติกรรม ที่สำคัญคือ interface ถูกทำให้สอดคล้องแบบ โดยปริยาย (implicitly): ชนิดใด ๆ ที่มี method เหล่านั้นจะสอดคล้องกับ interface โดยอัตโนมัติ โดย ไม่ต้องประกาศ "implements" อย่างชัดเจน แนวทางแบบ structural duck-typing นี้เป็นเอกลักษณ์และทรงพลัง
การนิยามและการ implement interface แบบโดยปริยาย
Speaker {
Speak()
}
Dog {}
Speak() { }
Cat {}
Speak() { }
s Speaker = Dog{}
s.Speak()
