我知道Go不支持模板或重载函数,但是我想知道是否有任何方法可以进行某种通用编程?
我有很多这样的功能:
func (this Document) GetString(name string, default...string) string {
v, ok := this.GetValueFromDb(name)
if !ok {
if len(default) >= 1 {
return default[0]
} else {
return ""
}
}
return v.asString
}
func (this Document) GetInt(name string, default...int) int {
v, ok := this.GetValueFromDb(name)
if !ok {
if len(default) >= 1 {
return default[0]
} else {
return 0
}
}
return v.asInt
}
// etc. for many different types
没有太多冗余代码,有什么办法可以做到这一点?
繁星点点滴滴
相关分类