草庐IT

漫反射

全部标签

go - 是否可以在 Golang 类型断言中使用反射数组类型?

我需要检查interface{}是否为数组,如果是则创建相应的slice。不幸的是,我事先不知道数组长度。例如:import("reflect")funcAnythingToSlice(ainterface{})[]interface{}{rt:=reflect.TypeOf(a)switchrt.Kind(){casereflect.Slice:slice,ok:=a.([]interface{})ifok{returnslice}//itworkscasereflect.Array://returna[:]//itdoesn'twork:cannotslicea(typeinter

golang递归地反射(reflect)字段类型和值

在golang中,我想通过一个结构递归反射(reflect),得到字段的名称,它的类型和值。这里的代码帮我反射(reflect)了golangrecurisivereflection问题是,当我尝试提取值时,当我在ptr值上反射(reflect)该值时,我总是感到panic。是否可以反射(reflect)这两种类型,并继续传递值直到我到达原语,然后打印字段名称、类型和值?这是我修改的代码:funcprintType(prefixstring,treflect.Type,vreflect.Valuevisitedmap[reflect.Type]bool){//Printthenameo

json - 将 json 解码为反射结构(续)

我想编写一个gin中间件处理程序,它从c.Request.FormValue("data")获取数据,将其解码为一个结构(结构相当不同)并在上下文中设置一个变量(c.Set("Data",newP))。所以我搜索并写下了这个:packagemiddlewareimport("reflect""fmt""github.com/gin-gonic/gin""encoding/json")//https://semaphoreci.com/community/tutorials/test-driven-development-of-go-web-applications-with-gin//

golang 反射(reflect)到 []interface{}

我想创建一个迷你框架,它采用一个简单的结构并从中创建一个完整的crud。我已经开始了,“findOne、更新、创建、删除”正在运行。不是我在创建findAll方法时遇到问题。更清楚地说,我不知道如何使用反射将我的ptr寻址到结构数组。这里是findOne函数的一个小例子。typecompanystruct{IdintNamestring}comp.InitModel(newDbConnection(),&comp)在InitModel中,我可以用以下内容填充指向公司的指针://m.caller=pointertotheptrtocomp(struct)callerV:=reflect.

go - 将反射值转换到 golang 中?

是否可以将reflect.Zero/New生成的值动态转换回任意类型?https://blog.golang.org/laws-of-reflection似乎不建议(因为go是静态类型的)。据我所知,这似乎限制了反射的使用,因为您始终需要了解您正在使用的类型。这是我的意思的一个例子:packagemainimport("fmt""reflect")typeAstruct{Namestring}funcmain(){a:=&A{Name:"Dave"}fmt.Println(a)//createanilpointerofanarbitrarytypedynamicType:=reflec

go - Gorilla/schema 本身是否支持 `json` 反射标签?

在文档中,Gorilla/schema表示您必须指定schema反射标记才能解压结构。当我没有模式标记时,例如当我只使用json标记时,我已经看到它解包。当未指定schema标记时,Gorilla在幕后做了什么?它会查看其他标签还是进行不区分大小写的匹配?未指定schema标记是否会对性能造成巨大影响?编辑:指定/链接包 最佳答案 对于其他搜索此答案的人-这个包可以使用任何标签。默认为schema(whichisinitializedhere)。要更改它正在搜索的标签,请使用decoder.SetAliasTag("json")。虽

c# - InvalidOperationException 错误反射(reflect)类

在阅读了与此错误相关的多个帖子后,没有找到解决我的问题的方法,我在这里解释一下。我使用XmlSerializer来序列化简单的类。这是我的代码:privatevoidbtnGenerateXml_Click(objectsender,RoutedEventArgse){Orchardorchard=newOrchard{Recipe=newRecipe{Name="GeneratedbyJooWeb.Tools",Author="admin",ExportUtc=DateTime.UtcNow},MyDatas=newMyDatas{//Test="test"TrendDatas=ne

c# - 序列化 List<T> 错误反射(reflect)字段

刚接触xml序列化,找不到我的具体问题。使用这段代码序列化:Humanh=newHuman();XmlSerializerwriter=newXmlSerializer(typeof(Human));System.IO.StreamWriterfile=newSystem.IO.StreamWriter(@"c:\temp\serializerExample.xml");writer.Serialize(file,h);file.Close();获取内部异常:{"Therewasanerrorreflectingfield'_foods'."}人类:publicclassHuman:M

xml - FSharp.Data 类型提供者和反射 : how do I examine the properties of an XmlProvider type?

我正在尝试使用XmlProvider解析一些非常大的数据文件(大约50MB)。由于它们太大,使用真实数据文件作为示例是不切实际的,因此我创建了一个示例XML文件,我希望是可用数据的代表性示例。但是,我不能100%确定我已经涵盖了那个50兆字节文件中的所有可能元素,因此我试图验证我的示例是否具有代表性。我正在尝试使用反射来帮助进行验证,但我遇到了问题。首先,背景。我不确定的原因是因为我正在解析的XML文件本质上具有以下(非常扁平的)数据结构:BrownSquareJohnSmithMaroonDashedCircleBlueDottedHexagon(在真实的数据文件中,“Guid001

c# - 使用反射将 XML 转换为对象

如果你喜欢解决问题,这里有一个大问题:D首先,这与序列化无关,好吗?好吧,我的情况...我正在编写一个函数,我将作为参数传递一个Xml(XmlDocument)和一个对象(Object)作为引用。它将返回给我一个对象(被引用的对象),其中填充了Xml(XmlDocument)中的值。例如:我有一个像这样的Xml:1Daniel还有我的功能publicObjecttransformXmlToObject(XmlDocumentxml,Objectref){//ScrolleachparametersinXmlandfilltheobject(ref)usingreflection.ret