草庐IT

go-admin

全部标签

go - 在 "go-getable"包中选择不同的可执行文件名称

是否可以有一个“go-getable”的cli-package(packagemain),但二进制文件安装在不同的名称下?例如拥有一个仓库github.com/exaring/foo-cli但是gogetgithub.com/foo/foo-cli会安装一个名为foo的二进制文件(不是foo-cli)?重点是要有一个富有表现力的存储库名称,但要有一个简短且易于键入的可执行文件。 最佳答案 如果您同意用户运行gobuild而不是goget,您可以这样做:gobuild-ofoogithub.com/foo/foo-cli否则,您可以将

go - 如何在 Swagger 中创建前缀路由

通常swagger提供的示例设置简单的服务器,其中对json函数的所有api调用都在文档根目录中。例如著名的“helloworld”位于“/hello”。我想找到一种方法来定义给定的前缀,以便可以将特定的api放在这个前缀下。如果前缀为“/api/2.0”,则示例api将变为/hello-->/api/2.0/hello#Theprefixwouldbe"/api/2.0"/goodbye-->/api/2.0/goodbye#最后我想保持这种动态并真正提供一些命令行开关server-prefix'/api/2.0'服务器会将其用于api。请注意,我也可以不指定前缀,系统应该回退到“/

Go 中的 JSON 解码器在 UTF-8 中解码字符串错误

我在Go中遇到了json解码器的问题。我有客户端(dotnetcore)和服务器(go),它们通过套接字进行通信。编码设置为utf-8。在服务器端解码后不是格式正确的字符串之一。去解码代码:buf:=make([]byte,bufferSize)_,err:=conn.Read(buf)iferr!=nil{fmt.Println("Errorreading:",err.Error())}s:=string(buf[:])r:=strings.NewReader(s)d:=json.NewDecoder(r)request:=Request{}d.Decode(&request)变量s

go - Flatbuffers GoLang - 在序列化和反序列化数据时无法理解我的错误导致无法检索数据

我是Flatbuffers和GoLang的新手。我正在尝试实现一个将对象转换为FlatBuffers并检索相同对象的函数。这是我的代码。更新代码funcgetannouncements(){annList:=SR.GetFromDB().GetAllAnnouncementList()fmt.Println(annList)builder:=flatbuffers.NewBuilder(1024)varthisobjlist[12]flatbuffers.UOffsetTfori,j:=rangeannList{annTitle:=builder.CreateString(j.AnnT

go - 如何覆盖压缩包中的文件

我有一个极端情况,其中两个文件具有相同的名称但内容不同并且被写入相同的tarball。这导致tarball中有两个条目。我想知道如果tar文件已经存在于tarball中,我是否可以做任何事情来使tar覆盖该文件,而不是创建另一个具有相同名称的文件。 最佳答案 不可能,因为当您要求写入第二个文件时,第一个文件已经写入并且流已经推进了位置。请记住,tar文件是按顺序访问的。你应该在开始写入之前进行重复数据删除。 关于go-如何覆盖压缩包中的文件,我们在StackOverflow上找到一个类似

go - 如何从结构名称的字符串表示中实例化结构

go允许你从一个字符串实例化一个结构体吗?(类似于Ruby中的rubyconvertclassnameinstringtoactualclass)我正在尝试将代码从单个文件分离到子目录中,但在运行gobuild时得到了undefined:PngConverter。这可能是一个加载顺序问题,但现在我正在尝试动态实例化该结构。convert_image.govarconverters=map[string]string{"png":"PngConverter","jpg":"JpegConverter","jpeg":"JpegConverter",}typeConverterinterf

go - 如何通过运行时获取真实文件名。不同goroutine中匿名函数调用的调用者

我有这个示例代码https://play.golang.org/p/c_2GECIcrW我期望getFileName会打印出类似ma​​in.go:11的内容,但我得到的是asm_amd64p32.s:1014在这种情况下,我该怎么做才能得到预期的结果?我可以存档并继续使用匿名函数吗? 最佳答案 您的期望不正确。为了便于解释,让我在这里粘贴您的代码:packagemainimport("fmt""path/filepath""runtime""time")funcmain(){getFileName(1)time.Sleep(tim

go - 函数作为参数,访问内部参数

包裹valyala/fasthttp实现以下函数类型:typeRequestHandlerfunc(ctx*RequestCtx)它用于buaazp/fasthttprouter像这样:func(r*Router)Handle(method,pathstring,handlefasthttp.RequestHandler){//...}我试图像这样包装这些(开放实现建议)://myapp/routertypeRequeststruct{fasthttp.RequestCtx}typeRequestHandlerfunc(*Request)funcHandle(methodstring,

go - 从另一个文件访问在 main func 中创建的运行时配置实例

我有一个应用程序其他部分需要的运行时配置实例,但它只能在main()中创建。理想情况下,我想避免使用全局变量。//main.gotypeRuntimeConfigstruct{db*DatabaseInstanceapp_namestring...etc...}funcmain(){dbInstance=ConnectToDB(...args)//returns*DatabaseInstanceruntimeConfig:=*Config{dbInstance,"Myapp",...etc...}}//elsewhere.gofuncSomeUtilityFuncThatNeedsRu

go - 如何在 Go 中将模板呈现为多个布局?

我需要将模板呈现为不同类型的布局。这是我的目录结构。myapp|│main.go│├───static│script.js│style.css│└───templates│page1.tmpl│page2.tmpl│page3.tmpl│page4.tmpl│page5.tmpl│└───layoutsbase1.tmplbase2.tmplbase3.tmpl我已经将模板渲染到单个布局模板,但是我无法让它在多个布局上工作。这是我到目前为止得到的:packagemainimport("html/template""net/http""fmt""github.com/urfave/neg