当前位置: > > > > 执行不接受参数的方法
来源:stackoverflow
2024-04-21 21:54:24
0浏览
收藏
知识点掌握了,还需要不断练习才能熟练运用。下面给大家带来一个Golang开发实战,手把手教大家学习《执行不接受参数的方法》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!
问题内容
给定一个结构体的任意实例,我希望能够执行其所有不接受参数的公共方法。
例如,在下面的代码中,我希望能够在不知道 x{}.foo() 和 x{}.bar() 存在的情况下执行它们。
package main import ( "fmt" "reflect" ) type X struct { Y string } func (x X) Foo() string { return x.Y } func (x X) Bar() { } func (x X) Baz(q string) { } func main() { fooType := reflect.TypeOf(X{}) for i := 0; i < fooType.NumMethod(); i++ { method := fooType.Method(i) fmt.Println(method.Name) } }
解决方案
- 将 更改为
- 检查 的 ,确保它接受零个参数
- 使用 调用该方法
foo := reflect.ValueOf(X{}) for i := 0; i < foo.NumMethod(); i++ { method := foo.Method(i) if method.Type().NumIn() == 0 { method.Call(nil) } }
理论要掌握,实操不能落!以上关于《执行不接受参数的方法》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注公众号吧!