Hello, everyone.
Consider following code:

package main
import "fmt"

type implementation struct {
    d []int}

func (impl *implementation) getData() interface{} {
    return impl.d}

type phase struct{}

type data interface {
    getData() interface{}}

func MakeIntDataPhase() *phase {
    return &phase{}}

func (p *phase) run(population []data) []data {
    return nil}

func main() {
    var population []implementation
    MyPhase := MakeIntDataPhase()
    fmt.Println(MyPhase.run(population))
}


When running following code in playground I got following error: prog.go:30:25: 
cannot use population (type []implementation) as type []data in argument to 
MyPhase.run

If I understand correctly it is because slice of interface type cannot be 
converted by the compiler to concrete type.


What is correct way in golang to implement functionality that is presented in 
the example?

When method argument defined using a slice of some interface, how I can pass it 
a slice of a concrete type that implements the interface?

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to