草庐IT

go-simplejson

全部标签

go - golang中根据环境配置数据库细节

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion要求:在golang中根据环境(如QA、PROD)配置数据库连接。例如:{"QA":{"host":"124.44.2.2","port":"1234"},"PROD":{"host":"125.65.23.64","port":"1234"}}我可以在JSON/YAML等中配置它,但问题是当我们构建go时,构建文件不包含非go文件。因此,当将构建部署到不同的实例时,它会丢失配置文件。另一

go - 有什么方法可以使用 golang std 库来格式化日志(如下所述)?

2018年2月1日下午3:04:05(UTC)|这是日志消息2018-02-01T15:04:05Z|这是日志消息我在gosrc中找到了下一个格式:https://github.com/golang/go/blob/master/src/log/log.go#L37但似乎我无法仅使用那些来做到这一点.. 最佳答案 这里有两个选项:使用log.SetOutput设置自定义编写器。或者使用fmt包而不是只打印到stdout或其他地方-stdlib日志包做的不多而且很容易创建你自己的日志包,它以自定义时间格式输出到stdout(或日志文件

go - 如何创建扩展类型

我看到可以扩展导入的包,例如添加新方法。但是,我尝试这样做来创建我自己的结构的新实例:packagemainimport("github.com/intdxdt/rtree")typeRTreestruct{rtree.RTree}funcNewRTree(nodeCap...int)*RTree{returnrtree.NewRTree(nodeCap...)}我在其他问题上看到了类似的例子。但是我得到一个错误:不能在返回参数中使用rtree.NewRTree(nodeCap...)(类型*rtree.RTree)作为类型*RTree。问题是-如何使用我自己的方法和所有导入的方法/字

go - 如何从文件填充结构

我有一个struct是这样设计的:typeUrlDatastruct{AsintIsostring}我实例化它,然后我读取一个文本文件(见下文)以检查某个结构字段是否等于txt文件中的值(是的,我知道显式比较会容易得多,但从文件中读取数据是必须满足的要求)txt文件格式如下:as646isous读取txt文件时,我想知道*UrlData.As字段(在实例化项中)是否等于文件中的值,即646。问题是我不知道如何将txt文件中的当前字段与结构字段的名称相匹配。最合适的方法是什么? 最佳答案 您将需要实现一种机制,该机制可以确定行中命名的

go - 简单 HTTPS 请求 : Golang returns 505, Python 和 Chrome 工作

我正在尝试使用最简单的golang代码执行HTTPgetoverTLS,并从服务器获取505响应(不支持HTTP版本)。问题是,使用简单的pythonrequests.get可以实现相同的查询。此外,我可以使用Chrome并成功执行相同的请求。有什么想法会使golang请求不同,从而导致服务器返回505吗?我意识到这个响应是特定于服务器的。使用相同的golang代码将HTTPS连接到google.com。我曾尝试使用Wireshark进行故障排除,但TLS使这变得困难。看来这一定很简单!服务器是nginx1.9.3。Golang代码:packagemainimport("fmt""ne

go - 我们如何创建一个空 map 并在 golang 中附加新数据?

我在创建一个空map并在另一个map上循环时向其附加新数据时遇到问题。这是我在IDE上遇到的错误。这是我要添加到map的数据结构。typeOutcomestruct{QuestionIndexstringChoiceIndexint64Correctbool}funccreateEntryOutcome(e*entry.Entry)map[string]interface{}{entryPicks:=e.Live.Picksoutcomes:=make(map[string]interface{})foridx,pick:=rangeentryPicks{mappedPick:=pic

go - 如何将 []byte 转换为 *bytes.Buffer

我正在尝试解码通过另一个fasthttp端点发送的gob输出并收到错误Fasthttpendpoint(encode[]stringthroughgob)---->Fasthttpendpoint(接收和解码)buffer:=&bytes.Buffer{}buffer=ctx.PostBody()backToStringSlice:=[]string{}gob.NewDecoder(buffer).Decode(&backToStringSlice)我收到错误:ctx.PostBody()(type[]byte)astype*bytes.Bufferinassignment如何将[]b

go - 执行外部命令并返回其输出

我正在尝试执行linux命令并将输出转换为int。这是我当前的代码:packagemainimport("os/exec""os""strconv"_"fmt""log""bytes")funcmain(){cmd:=exec.Command("ulimit","-n")cmdOutput:=&bytes.Buffer{}cmd.Stdout=cmdOutputerr:=cmd.Run()iferr!=nil{os.Stderr.WriteString(err.Error())}count,err:=strconv.Atoi(string(cmdOutput.Bytes()))ifer

go - go 工具存储在哪里?

我很难找到go工具当前在我的设置中的位置。$gotoolcgocovervet封面不在路径上:$whichcover/usr/bin/which:nocoverin...这是go环境:$goenvGOARCH="amd64"GOBIN="~/go//bin"GOCACHE="~/.cache/go-build"GOEXE=""GOHOSTARCH="amd64"GOHOSTOS="linux"GOOS="linux"GOPATH="~/go/"GORACE=""GOROOT="/usr/bin/go"GOTMPDIR=""GOTOOLDIR="/usr/libexec/gcc/x86_

go - 从执行的 bin 中读取配置

我正在使用goviper读取我的repo中的config文件myrepo-config.yaml-main.go我使用下面的代码viper.SetConfigName("config")viper.AddConfigPath(".")viper.SetConfigType("yaml")err:=viper.ReadInConfig()现在我将它编译为二进制文件,然后从不同的路径(运行bin),我得到了找不到配置的错误,这里可能出了什么问题?文件在那里,如果我在调试中使用ioutil.ReadFile我会得到它,但不是来自可执行文件... 最佳答案