草庐IT

通用字

全部标签

arrays - 不能在赋值 : need type assertion 中使用字(类型接口(interface) {})作为类型字符串

我是Go的新手,出于某种原因我正在做的事情对我来说似乎不是很直接。这是我的代码:for_,column:=rangeresp.Values{for_,word:=rangecolumn{s:=make([]string,1)s[0]=wordfmt.Print(s,"\n")}}我得到了错误:不能在赋值中使用word(typeinterface{})作为类型字符串:需要类型断言resp.Values是一个数组数组,所有数组都填充有字符串。reflect.TypeOf(resp.Values)返回[][]interface{},reflect.TypeOf(resp.Values[0])

arrays - 使用解码到通用接口(interface)时如何验证 JSON?

我想验证字节数组数据是否包含有效的JSON,使用unmarsall方法进入接口(interface)。packagemainimport("encoding/json""fmt")funcisJSON(sstring)bool{varjsmap[string]interface{}returnjson.Unmarshal([]byte(s),&js)==nil}funcmain(){vartests=[]string{`{"a":"b"}`,`[{"a":"b"},{"a":"b"}]`,}for_,t:=rangetests{fmt.Printf("isJSON(%s)=%v\n\n

go - 将通用结构/接口(interface)传递给函数并返回它

我可以将通用结构或接口(interface)传递给函数,然后返回它吗?我试过在下面的例子中使用指针,我也试过使用struct作为返回类型,但我似乎做不到。如果我改为使用interface{},我似乎能够传入postData,但通过返回或更新指针来取回它似乎是不可能的。谁能告诉我哪里出错了?funcEmailHandler(writerhttp.ResponseWriter,request*http.Request){varpostData=EmailPostData{}ConvertRequestJsonToJson(request,&postData)}funcConvertRequ

go - 如何导入项目特定的 go 包,同时为完全不同的项目通用的 go 包维护一个单独的位置?

所以我第一次开发了一个go应用程序。我开始知道有两个变量GOROOT和GOPATH用于维护go包。目前我的理解是,GOROOT是存放go二进制文件的,GOPATH主要是存放项目需要的库和辅助包。这是我当前的项目结构-/Users/john/work/project-mars/Users/john/work/project-mars/main.go/Users/john/work/project-mars/helper/Users/john/work/project-mars/helper/helper.gomain.go的内容packagemainimport("fmt""helper

json - Go:在结构中建模通用 JSON 数组可能吗?

我希望能够编码/解码一个结构typeMyTypestruct{Items`json:"item"`}它必须能够处理的示例JSON文档是{"items":["value1",{"x":"y"},"value3"]}我才刚刚开始学习围棋。我开始认为我可能需要对数组的结构施加一些限制。使用上面的例子,我的想法是{"items":[{"type":null,"value":"value1"}{"type:"x","value":"y"},{"type":"value3","value":"value3"}]}然后用自己的结构对里面的对象建模。我宁愿用第一种方式,这可能吗?

go - 如何以通用方式引用嵌套 map

我正在尝试从我解码的yaml文件访问嵌套字段,例如services键。对于它的值(value),我不想构建一个反射(reflect)yaml文件结构的struct,因为它可能并不总是采用这种形式。yaml文件如下所示:declared-services:Cloudant:label:cloudantNoSQLDBplan:Liteapplications:-name:myProjectmemory:512Minstances:1random-route:truebuildpack:javaservices:-Cloudanttimeout:180env:services_autocon

arrays - Golang 通用 JSON 编码

我正在从事基于JSON通信的小型服务器-客户端项目。但我遇到了问题。我正在尝试创建一个具有通用消息正文的响应结构。这意味着我有一个map,其中一个键作为字符串,一个json原始消息作为值。最后,消息正文应该适用于任何类型(字符串、整数、数组)packagemainimport("encoding/json""fmt")typeServerResponsestruct{Codeint`json:"code"bson:"code"`Typestring`json:"type"bson:"type"`Bodymap[string]json.RawMessage`json:"body"bson

go - 多Consumer场景下Go接口(interface)应该在哪里定义?生产者中的界面如何显示通用性?

有人可以给我这个建议的具体例子吗?https://github.com/golang/go/wiki/CodeReviewComments#interfaces这就是我遵循的方式吗?packageworkertypeinterfaceDB{getAllTable()}typeworkerstruct{dbDB}func(wworker)doSomething(){w.db.getAllTable()}packagelistenertypeinterfaceDB{getAllTable()}typelistenerstruct{dbDB}func(llistener)doSomethin

mysql - 如何在 golang 中编写一个通用方法以在任何 mysql 表中插入记录

我正在golang中创建一个restapi,并向表中发出一个POST请求。为此,我创建了一个结构。基本上,struct中的变量与名为users的表中的列相同。并编写了一个函数来发出POST请求。代码运行良好,发出POST请求时的参数已成功插入表中。typeUserstruct{IDintNamestringLnamestringCountrystring}funcinsertUser(responsehttp.ResponseWriter,request*http.Request){varuserDetailsUserdecoder:=json.NewDecoder(request.B

go - 如何在 Go 中创建一个通用的 GRPC 服务器启动函数

我正在尝试抽象GRPC服务器的启动原主函数如下:funcmain(){lis,err:=net.Listen("tcp",port)iferr!=nil{log.Fatalf("failedtolisten:%v",err)}s:=grpc.NewServer()pb.RegisterCollectionServer(s,&server.Server{})//RegisterreflectionserviceongRPCserver.reflection.Register(s)iferr:=s.Serve(lis);err!=nil{log.Fatalf("failedtoserve: