我需要做這樣的事情:// I have an interface with these two methods definedtype mapper interface { ReadMapper(interface{}) interface{} WriteMapper(interface{}) interface{}}ReadMapper然后我需要分配WriteMapper一些在項(xiàng)目其他地方定義的功能。有沒(méi)有辦法在 Go 中做這樣的事情?給他們分配職能? V1Mapper mapper V1Mapper.ReadMapper = functions().... V1Mapper.WriteMapper = functions()....然后,我需要另一個(gè)映射,并希望映射器作為值類型,并希望執(zhí)行如下操作。mappingFunctions := map[string]mappermappingFunctions ["some_string"] = V1Mapper 然后從另一個(gè)文件中,我想這樣做:mappingFunctions["some_string"].ReadMapper(Data)編輯:我從未在問(wèn)題中要求語(yǔ)法。我只是想知道是否有更好的方法來(lái)做到這一點(diǎn),因?yàn)槲沂?Go 新手。我同意我對(duì) Go 的語(yǔ)法不是很熟悉,我將不得不閱讀文檔(不是一次,而是多次)。
1 回答

素胚勾勒不出你
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果您想從現(xiàn)有函數(shù)組合映射器,您可以使用結(jié)構(gòu)而不是接口:
type Mapper struct {
ReadMapper func(interface{}) interface{}
WriteMapper func(interface{}) interface{}
}
mappers := map[string]*Mapper{}
mappers["some_name"] = &Mapper{
ReadMapper: someFunc1,
WriteMapper: someFunc2,
}
或者
m := new(Mapper)
m.ReadMapper = someFunc1
m.WriteMapper = someFunc2
mappers["some_name"] = m
- 1 回答
- 0 關(guān)注
- 127 瀏覽
添加回答
舉報(bào)
0/150
提交
取消