草庐IT

反射率

全部标签

string - 如何在 Go 中使用反射设置一个指向字符串的结构成员

我正在尝试使用反射来设置指针。elasticbeanstalk.CreateEnvironmentInput有一个SolutionStackName字段,它是*string类型。当我尝试设置任何值时出现以下错误:panic:reflect:callofreflect.Value.SetPointeronptrValue这是我的代码:...newEnvCnf:=new(elasticbeanstalk.CreateEnvironmentInput)checkConfig2(newEnvCnf,"SolutionStackName","teststring")...funccheckCon

go - 如何通过反射从名称中获取类型表示?

有没有办法使用reflectionlibraries在Go中从一个类型的名称转到它的Type代表?我有一个库,用户需要在其中为某些代码生成提供类型表示。我知道这一定是可能的(在某种意义上),因为他们可以创建该类型的变量并调用TypeOffunction,但是有没有办法绕过这个并只从名称中获取表示? 最佳答案 这个问题不是很明确,可以用两种方式解释,其中一种答案是否定的,不可能的;另一个答案是肯定的,这是可能的。在运行时如果类型名称作为string值提供,那么在运行时它是不可能的,因为未明确引用的类型可能不会编译成最终的可执行二进制文

go - 如何通过反射从名称中获取类型表示?

有没有办法使用reflectionlibraries在Go中从一个类型的名称转到它的Type代表?我有一个库,用户需要在其中为某些代码生成提供类型表示。我知道这一定是可能的(在某种意义上),因为他们可以创建该类型的变量并调用TypeOffunction,但是有没有办法绕过这个并只从名称中获取表示? 最佳答案 这个问题不是很明确,可以用两种方式解释,其中一种答案是否定的,不可能的;另一个答案是肯定的,这是可能的。在运行时如果类型名称作为string值提供,那么在运行时它是不可能的,因为未明确引用的类型可能不会编译成最终的可执行二进制文

go - 反射(reflection)传递给 interface{} 函数参数的结构

我将结构作为interface{}传递给函数.然后在里面我使用reflect来处理它获取结构属性。这是代码:func(db*DB)Migrate(domain...interface{}){//statement:="CREATETABLEIFNOTEXISTS%s(%s,%s,%s,%s,%s)"for_,i:=rangedomain{params:=BindStruct(&i)statement:=CreateStatement("create",len(params))_,err:=db.Exec(fmt.Sprintf(statement,params...))iferr!=n

go - 反射(reflection)传递给 interface{} 函数参数的结构

我将结构作为interface{}传递给函数.然后在里面我使用reflect来处理它获取结构属性。这是代码:func(db*DB)Migrate(domain...interface{}){//statement:="CREATETABLEIFNOTEXISTS%s(%s,%s,%s,%s,%s)"for_,i:=rangedomain{params:=BindStruct(&i)statement:=CreateStatement("create",len(params))_,err:=db.Exec(fmt.Sprintf(statement,params...))iferr!=n

reflection - 去反射(reflect)。如何检查 reflect.Type 是否为错误类型?

我需要确定地检查reflect.Type是否是一个错误。错误没有反射(reflect)类型。在goreflect中检查类型错误的正式/惯用方式是什么?GoPlaygroundFullExample//returnmapofdefaultvalues,basedoneachreturntypeofafunction//error=>err=nil//bool=>true//struct=>newstructfuncgetDefaultValue(originalFunctioninterface{})map[int]reflect.Value{defaultValues:=make(ma

reflection - 去反射(reflect)。如何检查 reflect.Type 是否为错误类型?

我需要确定地检查reflect.Type是否是一个错误。错误没有反射(reflect)类型。在goreflect中检查类型错误的正式/惯用方式是什么?GoPlaygroundFullExample//returnmapofdefaultvalues,basedoneachreturntypeofafunction//error=>err=nil//bool=>true//struct=>newstructfuncgetDefaultValue(originalFunctioninterface{})map[int]reflect.Value{defaultValues:=make(ma

json - 反编码反射值

Hereisthecodepackagemainimport("fmt""encoding/json""reflect")var(datajson[]byte//refmapp)typemappmap[string]reflect.TypetypeUserstruct{Namestring//Typemap[string]reflect.Type}funcMustJSONEncode(iinterface{})[]byte{result,err:=json.Marshal(i)iferr!=nil{panic(err)}returnresult}funcMustJSONDecode(b

json - 反编码反射值

Hereisthecodepackagemainimport("fmt""encoding/json""reflect")var(datajson[]byte//refmapp)typemappmap[string]reflect.TypetypeUserstruct{Namestring//Typemap[string]reflect.Type}funcMustJSONEncode(iinterface{})[]byte{result,err:=json.Marshal(i)iferr!=nil{panic(err)}returnresult}funcMustJSONDecode(b

reflection - 使用嵌入在结构中的接口(interface)进行反射 - 如何检测 "real"函数?

我现在遇到的情况与此线程中询问的情况相同:Meaningofastructwithembeddedanonymousinterface?typeAinterface{Foo()string}typeBstruct{Abarstring}习惯上,从OOP语言的背景来看,这个模式对我来说“试图说”的是B必须实现接口(interface)A。但我现在明白“Go是不同的”。所以,这不是我最初期望的编译时检查,而是很高兴编译有或没有func(B)Foo()string{....}现在。正如上面的问题所指出的(解释):“在结构中使用嵌入式接口(interface)非常适合您只想实现接口(inter