草庐IT

learning_go_plan

全部标签

go - 读取一个通用的 yaml 文件

我有一个YAML格式的配置文件。我想为这个文件定义一个足够通用的结构。例子:A:B:C:D:E:F:G:由于没有预定义的结构,我无法为这种结构找到合适的结构。PS:包含所有字段的结构是NotAcceptable。 最佳答案 因为我的配置文件只是一个map结构。所以我所做的是向map添加另一个嵌套级别并创建map的map。像这样:varm:=make(map[string](map[string]string))现在我的配置看起来像这样:A:B:C:D:E:F:G: 关于go-读取一个通用

Go type assertion with interface 不明白它是怎么做到的

我正在阅读“GoBootcamp”,第3章第20页中有一个示例我无法理解。在此示例中,在printString(s)行中,s是fakeString类型的变量,但在开关中,进入“Stringer”情况。我试图了解这怎么可能。任何帮助,将不胜感激。代码是:packagemainimport"fmt"typeStringerinterface{String()string}typefakeStringstruct{contentstring}//functionusedtoimplementtheStringerinterfacefunc(s*fakeString)String()strin

go - 使用Go和Waitgroups并行获取数据

我有一个查询API的方法,可以使用或不使用过滤器来获取不同日期范围内的数据。funcgetTopData(countrystring,startDatetime.Time,endDatetime.Time,filterIDuint)(resultmap[string][10]topResult){response:=getRequest(fmt.Sprintf("%s/top/%s/%s-%s/filterid:%d/10",cfg.API.URI,country,startDate.Format("20060102"),endDate.Format("20060102"),filte

go - Golang 中的简单整数声明

我不认为自己是新手,但我不明白为什么这个非常简单的代码片段无法声明我的整数。funcmain(){vartotalResultsintrFile,err:=os.Open("users.csv")//3columnsiferr!=nil{fmt.Println("Error:",err)return}deferrFile.Close()//Creatingcsvreaderreader:=csv.NewReader(rFile)lines,err:=reader.ReadAll()iferr==io.EOF{fmt.Println("Error:",err)return}else{}t

mongodb - 使用 go-gin 和 mgo 从 mongoDB 通过 id 获取民意调查时出错

我如何使用go-gin和MongoDB按id查询民意调查,我尝试了几种方法但我仍然遇到错误(未找到),似乎无法在下面找到我的代码,我的数据库打开数据库:typePollstruct{//IDstring`json:"_id,omitempty"`IDbson.ObjectId`json:"id,omitempty"bson:"_id,omitempty"`Firstnamestring`json:"firstname,omitempty"`Lastnamestring`json:"lastname,omitempty"`Pollstring`json:"poll,omitempty"`

go test 错过了执行路径上的覆盖

考虑这样的文件结构:api--|_routes.go|_handler.goimpl--|_impl.go|_impl_test.go“impl”文件包含RESTAPI的内部实现,其处理程序和路由分别位于“handler.go”和“route.go”文件中。就打包而言,“api”文件夹下的所有内容都在“api”包中。“impl.go”中的代码在“impl”包中,“impl_test”包中的代码在“impl_test”包中。api-------|_routes|_handlerfunctionsimpl-------|_implfunctionsimpl_test--|_testfunc

go - k8s oidc 问题与帮助程序包 (k8s-oidc-helper : command not found)

我在安装go时遇到了k8s-oidc-helper包的问题。但是,当我用它运行任何命令时,它会给出命令未找到错误。我在ubuntu16.04VM上运行它。我该如何解决这个问题? 最佳答案 我已经解决了这个问题。`go'的路径集不正确我检查了go的环境并相应地设置了路径。exportGOPATH=/usr/lib/goexportPATH=$PATH:$GOPATH/binsudogoget-ugithub.com/micahhausler/k8s-oidc-helper现在帮助程序包可以工作了

python - ssl.wrap_socket 在go中的实现

在python中,您可以使用ssl包装标准套接字。可以在此处找到详细文档,https://docs.python.org/2/library/ssl.html我想要类似的东西。这是我的尝试。funcGetSSLWrappedConnection()(SSLWrappedConnectionnet.Conn,errerror){fmt.Println("Initialiazingproxyconnection")rawConn,er_:=net.Dial("tcp","127.0.0.1:8080")ifer_!=nil{returnnil,fmt.Errorf("Can'testabl

go - 并发写入包含 Golang 中另一个 Map 的 Map

在Golang中,我们必须将并发更改同步到Map。如果我的map包含另一个像这样的map:map[string]map[string]*CustomStruct..在写东西的时候我必须在所有这些中使用Lock吗?如果我将一些东西写入内部Map->外部Map也会被更改,所以我仍然必须同步外部Map的更改。如果我锁定外部Map的更改->没有其他人可以写入内部Map->锁定内部Map没有意义。我是对的还是它以不同的方式工作并且我必须锁定所有map? 最佳答案 我的理解是这里没有任何硬性规定。例如,您可以通过一个甚至没有存储在map上的互斥

go - 传递变量作为 exec.Command() 的参数

我想读取用户输入并将其用作命令的参数。我得到了这段代码:packagemainimport("bufio""fmt""log""os""os/exec")funcmain(){reader:=bufio.NewReader(os.Stdin)fmt.Print("Enterimgpath:")imgPath,_:=reader.ReadString('\n')args:=[]string{imgPath,"stdout","-lspa+eng"}out,err:=exec.Command("tesseract",args...).Output()iferr!=nil{log.Fatal