# Go: cannot use &Dog{} (value of type *Dog) as Animal value: *Dog does not implement Animal (missing method Speak)

**Code:** `does not implement interface (missing method)` · **Category:** Go · **Seen on:** Go

A type was used as an interface but lacks a method or has it with a different signature or receiver type.

## Meaning

Check the method name, signature and receiver. A method with a pointer receiver belongs to `*T`, not `T`, so `T` does not satisfy the interface. The compiler lists the missing or wrong-type method.

## Common causes

- Method missing or misspelled
- Pointer receiver method, value type used
- Different parameter/return types
- Unexported method from another package
- Embedded type not promoted as expected

## Quick fix

1. Implement the missing method with the exact signature
2. Use a pointer (`&T{}`) when methods have pointer receivers
3. Add `var _ Animal = (*Dog)(nil)` as a compile-time check

## Detailed fix by platform

### Go

1. `var _ Animal = (*Dog)(nil)` fails at compile time with a precise message

## How to diagnose

1. **Method** — Which is missing?
2. **Receiver** — Pointer or value?
3. **Signature** — Matches?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/go/does-not-implement-interface)
