草庐IT

go-import

全部标签

go - 如何在 Go 中将常量设置为负值

我正在用Go编写代码来调用一些Windows信任和加密dll来验证文件签名。wincrypt.h中有许多常量,我曾尝试逐字移植,但我遇到了一些整数溢出问题。例如,所有可以从WinVerifyTrust返回的错误代码都是负值。如果我举一个例子,TRUST_E_NOSIGNATURE,这是在winerror.h中定义的:#defineTRUST_E_NOSIGNATURE_HRESULT_TYPEDEF_(0x800B0100L)。在我的Go代码中,我有constTRUST_E_NOSIGNATURE=int32(0x800B0100)但是编译时的错误是:常量2148204800溢出int

client-go 中的 golang 语法

这个问题在这里已经有了答案:Whatdoesanunderscoreandinterfacenameafterkeywordvarmean?(2个答案)关闭3年前。有人可以帮助我理解这些代码吗?在client-go项目中,有些代码我看不懂。代码路径为\tols\cache\store.goAdd(objinterface{})errorUpdate(objinterface{})errorDelete(objinterface{})errorList()[]interface{}ListKeys()[]stringGet(objinterface{})(iteminterface{},

json - 如何使用mongo-go-driver有效地将bson转换为json?

我想在mongo-go-driver中转换bson有效地转换为json。我应该注意处理NaN,因为如果NaN存在于数据中,json.Marshal就会失败。比如我想把下面的bson数据转成json。b,_:=bson.Marshal(bson.M{"a":[]interface{}{math.NaN(),0,1}})//Howtoconvertbtojson?以下失败。//decodevardecodedBsonbson.Mbson.Unmarshal(b,&decodedBson)_,err:=json.Marshal(decodedBson)iferr!=nil{panic(err

go - 释放结构图

我正在处理一个非常大的结构指针映射。它在程序的整个生命周期中不断增长(我将它用作缓冲区),我编写了一个函数,该函数应该在调用时减小它的大小。typeSstruct{auint32b[]uint32}s:=make(map[uint32]*S)fork,v:=ranges{delete(s,k)s[k]=&S{a:v.a}}我从map的每个元素中删除了b,因此我预计内存中map的大小会缩小(b是长度>10的slice)。但是内存没有释放,为什么? 最佳答案 无论sliceb的容量如何,映射值&S(一个指针)的大小都是相同的。packa

go - 如何执行 CloudKit 服务器到服务器的身份验证

我正在关注ComposingWebServiceRequests执行DiscoveringAllUserIdentities(GETusers/discover).我们的想法是让这个简单的请求正常工作,然后再发出更复杂的请求,例如上传Assets。下面的代码从请求中返回一个错误。import("bytes""crypto/ecdsa""crypto/rand""crypto/sha256""crypto/x509""encoding/base64""encoding/pem""fmt""math/big""net/http""time"//...)funcmain(){fmt.Prin

go - 如何使用go将十六进制转换为整数

这个问题在这里已经有了答案:Howtoparselonghexadecimalstringintouint(1个回答)关闭3年前。我使用下面提到的代码使用go将十六进制值转换为十进制numberStr:=strings.Replace(s,"0x","",-1)numberStr=strings.Replace(numberStr,"0X","",-1)n,err:=strconv.ParseUint(numberStr,16,64)iferr!=nil{panic(err)}returnn十六进制值为:0x340aad21b3b700000但抛出错误:strconv.ParseUin

go - 在 : panic: runtime error: index out of range 中转换数据结构

我在go中有一个数据结构:typeAPIMainstruct{CodeConvstring`json:"codeConv"`Starttime.Time`json:"start"`Endtime.Time`json:"end"`Details[]struct{IDPrmstring`json:"idPrm"`Keys[]struct{Timestamptime.Time`json:"timestamp"`Valuefloat64`json:"value"`}`json:"keys"`}`json:"details"`}我需要转换为:typeDataGroupedByTSstruct{C

Go Web 服务 - 未定义的类型没有字段或方法

这个问题在这里已经有了答案:Functioninsamepackageundefined(10个答案)关闭8个月前。我正在尝试在Web服务中整合路由功能。包main有两个值得关注的文件,route.go和main.go。在route.go中,我定义路由如下:packagemainimport("github.com/justinas/alice""net/http")func(app*Application)Routes()http.Handler{standardMiddleware:=alice.New(app.logRequest)mux:=http.NewServeMux()m

go - 从 go channel 流中读取

我试图理解以下从一个channel中读取的代码片段。我在思考这个想法时遇到了一些困难。bridge:=func(doneorDone函数:orDone:=func(done如评论中所述,我需要一些帮助来理解为什么我们在forc:=rangeorDone(donem,stream)中进行选择。谁能解释一下这是怎么回事?提前致谢。编辑我从concurrencyingo一书中获取了代码。完整的代码可以在这里找到:https://github.com/kat-co/concurrency-in-go-src/blob/master/concurrency-patterns-in-go/the-

go - 使用模板导出双引号

我正在使用template在go中导出"但它只返回"。有没有办法得到它改为导出"。import("html/template")//TestfatestfunctionfuncTestf()string{return"\""}//MapToFunctionsMapactionstofunctionsvarMapToFunctions=template.FuncMap{"testf":Testf}然后,为了在文件中使用,我将放入{{testf}} 最佳答案 那是因为html/template将转义所有html特殊字符并将其替换为htm