【发布时间】:2023-03-15 08:40:01
【问题描述】:
我有一个结构,在结构定义下有 2 个方法,我想在其他使用结构名称和方法名称作为参数的地方调用。
结构体代码如下:
type ArticleForm struct {
Name string `required:"true" pattern:"^[A-Za-z0-9\u4e00-\u9fa5]{1,1024}$" valid:"Required;MaxSize(1024)"`
Category []Category `class:"multis" required:"true" valid:"Required" optionqs:"GetCategoryOption"`
Content string `class:"wysiwg_area" required:"true" valid:"Required"`
Tags []Tags `class:"multis_create" optionqs:"GetTagOptions"`
}
方法定义如下:
func (this *ArticleForm) GetTagOptions() []Tags {
return GetTagsOptions(nil)
}
以下是我要调用的:
func main() {
s := "models.ArticleForm"
t := "GetTagOptions"
//following is the question, how can i exec following?
funcall(s,t)
}
如何履行funcall(s,t)?
【问题讨论】:
-
参见stackoverflow.com/questions/10210188/instance-new-type-golang 以创建给定字符串类型的实例。
-
Switch Case 是一个简单的解决方案。