草庐IT

mongo_rows_struct

全部标签

json.Marshal(struct) 返回 "{}"

typeTestObjectstruct{kindstring`json:"kind"`idstring`json:"id,omitempty"`namestring`json:"name"`emailstring`json:"email"`}funcTestCreateSingleItemResponse(t*testing.T){testObject:=new(TestObject)testObject.kind="TestObject"testObject.id="f73h5jf8"testObject.name="YuriGagarin"testObject.email="Yu

go - 使用 reflect 模拟 struct.field

当字段是接口(interface)类型时,如何使用FieldByName获取与reflect.TypeOf(struct.field)相同的值?如图所示here,如果结构字段是一个接口(interface),reflect.TypeOf(struct.field)给我具体类型,但是reflect.ValueOf(struct).FieldByName("field").Type()给我界面。如果我只有struct和"field",是否可以使用reflect获取存储在struct.field中的具体类型? 最佳答案 你应该使用Elem

go - slice of struct != slice of interface 它实现了?

我有一个接口(interface)Model,它由结构Person实现。要获取模型实例,我有以下辅助函数:funcnewModel(cstring)Model{switchc{case"person":returnnewPerson()}returnnil}funcnewPerson()*Person{return&Person{}}上述方法允许我返回一个正确类型的Person实例(稍后可以使用相同的方法轻松添加新模型)。当我尝试执行类似的操作以返回模型slice时,出现错误。代码:funcnewModels(cstring)[]Model{switchc{case"person":r

go - protoc-gen-go struct xxx 隐蔽到 map[string]interface{}

.proto文件生成的.pb.go文件中的struct多了三个字段和一些其他的东西。像这样:将此struct转为json时,如果有一个字段为空,则该字段不会出现在json中。现在我知道可以使用jsonpb.Marshaler来完成。m:=jsonpb.Marshaler{EmitDefaults:true}现在,我将struct转换为ma​​p[string]interface{},将其放入InfluxDB。我必须将结构转换为map[string]interface{}。函数NewPoint需要。像这样:我在go中使用了structs.Map(value)函数,转换后的map多了三个字

c - 戈朗 : pack a struct

请考虑这个示例go代码:packagemain//#include//#include//#pragmapack(push,1)//structPacked_Struct{//uint16_tA;//uint16_tB;//uint32_tC;//uint16_tD;//};//#pragmapack(pop)////structUnPacked_Struct{//uint16_tA;//uint16_tB;//uint32_tC;//uint16_tD;//};//////voidprint_C_struct_size(){//structPacked_StructPacked_St

戈朗 : How to skip struct fields while reading from a buffer?

http://play.golang.org/p/RQXB-hCq_MtypeHeaderstruct{ByteField1uint32//4bytesByteField2[32]uint8//32bytesByteField3[32]uint8//32bytesSkipField1[]SomethingElse}funcmain(){varheaderHeaderheaderBytes:=make([]byte,68)//4+32+32==68headerBuf:=bytes.NewBuffer(headerBytes)err:=binary.Read(headerBuf,binar

sql - 将 row.Scan 和 rows.Scan 接口(interface)结合起来?

我有两个针对Go中特定表的查询-一个用于检索单个项目,另一个用于返回列表。第一个使用sql.DB.QueryRow因为它只需要检索一行,第二个使用sql.DB.Query返回几个不同的结果。问题是序列化需要一些工作,我想通过一个从数据库行扫描并将其读入Go类型的方法来DRYup。我的代码现在看起来像://SometypewhichvariesconsiderablyfromitsDBrepresentation,andtakessomeefforttoserialize.typeFoostruct{Baz*BazBoard[8][8]int}//Getonefoobyitsidfunc

戈朗 : How to change struct field value in slice of interfaces

Playground问题:https://play.golang.org/p/UKB8f4qGsM我有一部分接口(interface),我很确定它们有哪种类型(实际上我不知道,所以我必须输入switch它,但为了清楚起见我把它留了下来)。如何为接口(interface)后面的结构中的字段赋值?类型断言似乎带走了引用。我也尝试过使用指针,但它也不起作用,主要是因为我无法键入assert然后(类型*inter不能被类型断言)并且当我取消引用它时,它甚至变得毫无意义。..我在Go方面没有那么丰富的经验,如果能得到任何帮助,我将不胜感激。 最佳答案

csv - 转CSV : concatenate 2 csv columns into a single struct member

我可以使用GoCSV将2个csv列连接成一个结构成员吗??CSV格式是这样的colA,date,time,colBA1,2017-04-14,09:50:10,B1A2,2017-04-14,09:50:20,B2我想将此CSV映射到结构中typeMyStructstruct{ColAstring`csv:"colA"`DateTimestring//如何使用GoCSV或Go中的其他方式执行此操作? 最佳答案 (a)我认为没有受支持的方法可以做到这一点。但是,您可以实现一个将字段相互合并的自定义阅读器。相当专有,我不会推荐它。(b)

mongodb - golang mongo 延迟 session

我正在从main方法创建mongodb连接并延迟打开的连接。funcmain(){session:=db.CreateConnection(connectionStr)defersession.Close()}问题是我需要将此session对象传递给用户处理程序结构,然后从该结构传递给数据库处理程序。typeUserControllerstruct{DBDBOps}typeDBOpsstruct{session*mgo.Session}问题:我们如何直接创建session对象和内部数据库处理程序文件,并在应用程序关闭时将其推迟?db.gotypeDBOpsstruct{session*