Go 如何实现下面描述的功能

Go 如何实现下面描述的功能,go,go-interface,Go,Go Interface,我需要这样做: // I have an interface with these two methods defined type mapper interface { ReadMapper(interface{}) interface{} WriteMapper(interface{}) interface{} } 然后我需要为ReadMapper和WriteMapper分配一些在项目中其他地方定义的函数。在围棋中有没有这样的方法?给他们分配功能 V1Mapper m

我需要这样做:

// I have an interface with these two methods defined
type mapper interface {
    ReadMapper(interface{}) interface{}
    WriteMapper(interface{}) interface{}
}
然后我需要为ReadMapper和WriteMapper分配一些在项目中其他地方定义的函数。在围棋中有没有这样的方法?给他们分配功能

   V1Mapper mapper
   V1Mapper.ReadMapper = functions()....
   V1Mapper.WriteMapper = functions()....
然后,我需要另一个映射,并希望映射器作为值类型,并希望执行以下操作

mappingFunctions := map[string]mapper

mappingFunctions ["some_string"] = V1Mapper 
然后从另一个文件中,我想这样做:

mappingFunctions["some_string"].ReadMapper(Data)

编辑:我从来没有问过这个问题的语法。我只是想知道是否有更好的方法,因为我是新手。我同意我不太熟悉Go的语法,我将不得不多次阅读文档,而不是一次。

如果您想从现有函数组成映射器,可以使用结构而不是接口:

type Mapper struct {
    ReadMapper  func(interface{}) interface{}
    WriteMapper func(interface{}) interface{}
}

mappers := map[string]*Mapper{}
mappers["some_name"] = &Mapper{
    ReadMapper: someFunc1,
    WriteMapper: someFunc2,
}


使用带函数的结构而不是界面怎么样?我刚刚在互联网上看到了你关于使用结构的建议。你的意思是这样的吗???类型映射器结构{ReadMapper funcinterface{}接口{}WriteMapper funcinterface{}接口{}这允许我使用点符号将函数赋值吗?请通读。这将需要大约15分钟,并且应该有任何像这样的基本语法问题。如果你在那之后还有具体的问题,让我们知道。各位,这个问题不是关于语法的。这是关于设计的。
m := new(Mapper)
m.ReadMapper = someFunc1
m.WriteMapper = someFunc2
mappers["some_name"] = m