diff --git a/interfaces/08-method-embedding/book.go b/interfaces/08-promoted-methods/book.go similarity index 100% rename from interfaces/08-method-embedding/book.go rename to interfaces/08-promoted-methods/book.go diff --git a/interfaces/08-method-embedding/game.go b/interfaces/08-promoted-methods/game.go similarity index 100% rename from interfaces/08-method-embedding/game.go rename to interfaces/08-promoted-methods/game.go diff --git a/interfaces/08-method-embedding/list.go b/interfaces/08-promoted-methods/list.go similarity index 73% rename from interfaces/08-method-embedding/list.go rename to interfaces/08-promoted-methods/list.go index ec401e1..381de50 100644 --- a/interfaces/08-method-embedding/list.go +++ b/interfaces/08-promoted-methods/list.go @@ -9,11 +9,12 @@ package main import "fmt" -type printer interface { +type item interface { print() + discount(float64) } -type list []printer +type list []item func (l list) print() { if len(l) == 0 { @@ -27,13 +28,7 @@ func (l list) print() { } func (l list) discount(ratio float64) { - type discounter interface { - discount(float64) - } - for _, it := range l { - if it, ok := it.(discounter); ok { - it.discount(ratio) - } + it.discount(ratio) } } diff --git a/interfaces/08-method-embedding/main.go b/interfaces/08-promoted-methods/main.go similarity index 100% rename from interfaces/08-method-embedding/main.go rename to interfaces/08-promoted-methods/main.go diff --git a/interfaces/08-method-embedding/money.go b/interfaces/08-promoted-methods/money.go similarity index 100% rename from interfaces/08-method-embedding/money.go rename to interfaces/08-promoted-methods/money.go diff --git a/interfaces/08-method-embedding/product.go b/interfaces/08-promoted-methods/product.go similarity index 100% rename from interfaces/08-method-embedding/product.go rename to interfaces/08-promoted-methods/product.go diff --git a/interfaces/08-method-embedding/puzzle.go b/interfaces/08-promoted-methods/puzzle.go similarity index 100% rename from interfaces/08-method-embedding/puzzle.go rename to interfaces/08-promoted-methods/puzzle.go diff --git a/interfaces/08-method-embedding/toy.go b/interfaces/08-promoted-methods/toy.go similarity index 100% rename from interfaces/08-method-embedding/toy.go rename to interfaces/08-promoted-methods/toy.go