草庐IT

uuid_generate_random

全部标签

go - 如何去 :generate stringer constants from multiple packages?

我有一个这样的结构:.foo/bar/constants.go.foo/constants.go.main.go在main.go中声明类型:packageagepacktypeEventTypeuint//go:generatestringer-typeEventTypeconst(FirstTypeEventTypeiotaSecondType....)在每个constants.go中我都有这样的东西:packagefooconst(OneMoreTypeagepack.EventType=100+iota)如何使用所有包的值生成stringer? 最佳答

mongodb - 如何使用 mgo(golang 客户端)查询 mongodb 中的 UUID 字段?

我在查询我的mongo集合中提交的UUID时遇到问题。Mongo文档结构如下:{"_id":{"$oid":"5acf7faff5f02b0001e9fda1"},"j":{"$uuid":"d0459793-3ec0-71fd-319e-b959af081db6"},"s":"ok","creation_date":{"$date":"2018-04-12T15:47:59.003Z"}}我想获取文档,传递juuid(不是ObjectID)。我创建了mongo连接,并获取了我的集合,然后尝试执行此查询:import(mgo"gopkg.in/mgo.v2""gopkg.in/mgo.

go - "go generate"多行命令

我正在尝试使用//go:generate在编译我的代码之前运行一个外部工具,并且由于我需要传递一定数量的参数,所以这一行变得相当长。好像没有办法写一个多行的go:generate命令,对吗?是否有替代方法?谢谢 最佳答案 没有办法将gogenerate命令分成几行,但是有一些小技巧。如果你需要运行多个短命令,你可以像下面这样一条一条地写。//go:generateechocommandA//go:generateechocommandB//go:generatels您还应该知道,这里没有bash脚本,而是原始命令。所以下面的工作并不

unit-testing - 戈朗 : how to generate a net/http timeout Error to perform unit test

我得到了一段如下代码:iftimeoutErr,ok:=err.(net.Error);ok&&timeoutErr.Timeout(){//Somecodethatneedtotest}我怎样才能生成可以匹配此处条件的错误,以便代码通过if。 最佳答案 Error是一个接口(interface):typeErrorinterface{errorTimeout()bool//Istheerroratimeout?Temporary()bool//Istheerrortemporary?}要实现它,您需要执行以下操作(未经测试):ty

戈朗 : range through slice and generate HTML table

我有一个字符串slice,我想遍历slice并创建一个包含值的简单HTML表格。这是一些示例代码来说明:vartmpl=`%s`names:=[]string{"john","jim"}for_,v:=rangenames{fmt.Printf(tmpl,v)}这会产生:johnjim我想获取返回的内容并创建一个HTML表格,或者至少能够将它传递给另一个具有表格结构的HTML模板。知道如何做到这一点吗? 最佳答案 下面是创建表格的一种方法:vartmpl=`%s`fmt.Printf("")names:=[]string{"john

url - Base64 编码的 uuid 比预期的要长

对于我的restfulapi,我想基于url安全的base42编码的UUID版本4实现更短的url(将来我将使用MongoDB的内部版本)。生成工作正常,但Go的base64库似乎没有按预期将UUID编码为字符串。输出长度为48个字符,而不是22个字符(asshownhereinPython)。这是我的代码:packagemainimport("encoding/base64""fmt""github.com/nu7hatch/gouuid")funcprintRandomUUID(){uid,_:=uuid.NewV4()uid64:=base64.URLEncoding.Encod

go - 使用 go 引用当前文件 :generate

go:generate有没有办法引用当前文件?例如,我想做类似的事情//go:generatesometool$FILE谢谢 最佳答案 您可以按如下方式引用当前文件://go:generatesometool$GOFILE$GOFILE被扩展为gogenerate处理的文件的名称。 关于go-使用go引用当前文件:generate,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4

go - 是否可以在设计用于 go generate 的模板上使用 gofmt?

我正在使用go:generate处理自动生成一些数据库模型,我希望通过gofmt运行我的go模板,但它被所有额外的{{...}}动态部分。我是否遗漏了一些明显的东西?我希望这是gofmt人员解决的用例,因为gofmt和gogenerate都是go工具链的重要部分。显然,在gogenerate之后运行gofmt是可行的,但是让99%都是go代码的格式不佳的模板感觉很脏。 最佳答案 大多数生成工具将模板执行到*bytes.Buffer,使用format.Source格式化缓冲区字节并将结果写入输出文件。给定模板t和输出编写器w,代码如下

postgresql - generate_series 的 Postgres 查询中的占位符返回未知

我尝试使用这样的占位符进行查询database.Query("selectlogin,displaynamefrom(selectdistinct$1+trunc(random()*$2)::integerasidfromgenerate_series($3,$4)g)rjoinusersusing(id)limit10",min_id,max_id-min_id,min_id,max_id)它抛出一个错误:pq:functiongenerate_series(unknown,unknown)isnotunique然后我找到了将查询格式化为字符串的解决方案query:=fmt.Spri

xml - 戈朗 : structure to generate/parse both XML and JSON

用例是生成(和解析)以下XML和JSON,而不是为它们中的每一个创建单独的结构。XMLHelloSomething1Something2...JSON{"data":"Hello","data_type":"plaintext","field1":"Something1","field2":"Something2"...}可能的解决方案将是:typeXxxstruct{XMLNamexml.Name`xml:"http://example.org/nsxxx"json:"-"`//**Ifonly"inline"attributehadexisted**DataData`xml:"da