草庐IT

go-mocket

全部标签

go - 使用 Golang 启动正在运行的程序的另一个实例的好方法是什么?

我想要一个Go程序启动多个进程,它将与之交互。(我也不确定要使用哪种IPC方法,但也许这是另一个问题)我想到的是使用os.Executable()来获取正在运行的可执行文件的位置,然后使用exec包来运行程序的新实例。我想知道是否有另一种方法可以做到这一点而无需查询可执行文件的路径,或者这是否是我应该担心的行为。 最佳答案 在最新版本的Go(seethisolderSOanswerfordetails)中,推荐使用os.Executable来查找程序自身的路径。然后您可以使用exec.Command来运行它的更多实例。虽然这很不寻常

go - ...interface{} 函数参数中的 "Dereference"个元素

我有一个工作正常的记录器,但在内存分配方面产生了相当多的开销。下面的Debug()函数不是故意打印的,因为logOutputLevel不够高。varlogOutputLevel=2funcDebug(sstring,args...interface{}){iflogOutputLevel>1{return}fmt.Printf(s,args...)}当向它传递值时,该方法仍然会产生相当多的分配。将指针传递给它时,它不会产生大量分配。请参阅以下基准:funcBenchmarkLog(b*testing.B){x:="abc"forn:=0;n产生:BenchmarkLog-8500000

go - 如何在 Go 中设置和访问 "global"记录器?

我确信我遗漏了一些简单、基本的问题,我是新手。假设我不想使用默认记录器,如何设置记录器以便在函数之间共享它?logissue.gopackagemainimport("fmt""github.com/pkg/errors""log""os")vardloglog.Loggerconstlogfilestring="killer.log"constlogprefixstring="LOGTEST:"funcsetupLogger(filename,prefixstring)(*log.Logger,error){out,err:=os.OpenFile(filename,os.O_APP

go - 如何使用 golang 服务 angular?

我正在尝试使用http.FileServe提供角度应用程序的目录。但是我得到了该文件夹中的文件列表。我正在使用gorillamux包。如果它用于简单的html文件,它确实有效,但不适用于Angular应用程序。router:=mux.NewRouter()router.PathPrefix("/").Handler(http.FileServer(http.Dir("./static/src/app")))这会列出./static/src/app目录中的所有文件,当转到该url时。我应该如何正确地做到这一点? 最佳答案 Angula

go - 对切​​片内的整数 slice 进行排序

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭3年前。Improvethisquestion我正在尝试对slice内的intslice进行排序,例如:slices:=make([][]int32,0)slices=append(slices,[]int32{10,22})slices=append(slices,[]int32{13,22})s

go - golang 中的复制并发安全吗?

在某些情况下,我会将一些内容复制到slice的不同部分。像这样a:=make([]int,10)fori:=0;i它领先于数据竞赛。但它在产品环境中始终表现良好。所以我的问题是:任何数据竞争云都是未定义的行为吗?在这样的练习中我总能得到正确的结果吗? 最佳答案 为了避免会产生未定义结果的数据竞争,请同步。例如,packagemainimport("fmt""sync")funcmain(){varwgsync.WaitGroupa:=make([]int,10)fori:=0;iPlayground:https://play.gol

go - 修改要编码为 JSON 的数据

我有从mongo中提取数据的代码,并希望将其作为API响应提供。我的主要挑战是无法在推出数据之前对其进行转换。varresultinterface{}respBody,err:=json.Marshal(result)是否可以在输出之前编辑编码结果?例如。取出一些字段? 最佳答案 如果你只是想从json响应中删除一些字段,那么你可以这样做:packagemainimport("fmt""encoding/json")typeUserstruct{Namestring`json:"name"`Passwordstring`json:"

go - 运行时错误 : invalid memory address or nil pointer dereference (2)

这个问题在这里已经有了答案:Runtimeerror:invalidmemoryaddressornilpointerdereference(1个回答)关闭3年前。我是Go的新手,需要帮助!在PostgreSQL数据库中,我有一个名为factors的表。该表有2列(factor_id和factor_name)。现在,我已从Go应用程序成功连接到PostgreSQL数据库。当我试图在控制台中发出基于查询的GET请求时,我看到了错误。http://localhost:8000/api/factors/?limit=5&offset=1我哪里弄错了?请帮助我解决问题。controllers/

go - 在 Go 中测试通过 json http 响应返回的错误

我目前正在使用Go开发一个图像处理程序,它旨在拒绝上传不受支持的文件。我的意图是让Go程序通过服务器http.ResponceWritter返回错误,详细说明拒绝的情况,作为json,供上传服务使用。如何在服务器代码中设置错误:typeErrorstruct{ImgHandlerError`json:"error"`}typeImgHandlerErrorstruct{Messagestring`json:"message"`Codestring`json:"code"`}funcMakeError(message,codestring)*Error{errorMessage:=&Er

go - 使用 golang 处理非 utf8 输入

我有一些由程序生成的奇怪字符输入到stdout,我想编写一个go脚本来监视stdout以替换这些字符。我做了一些研究,似乎golang只支持utf8,我对使用UTF解码这些字符很感兴趣,比如:https://cafewebmaster.com/online_tools/utf8_encode例如:ü将是->ü是否有一个golang函数/库可以帮助解决这个问题/任何示例都值得赞赏 最佳答案 使用文本/转换包。不过你需要知道编码...读取ISO8859格式文本文件的示例:import("golang.org/x/text/transf