草庐IT

Build-in

全部标签

戈朗 : Is there a way to modify one of the multi-value return parameters in one line?

我正在尝试在Go中做一些相对简单的事情——将字符串转换为整数,然后将其加倍:myInt,_:=strconv.Atoi(args[1])doubleArg:=myInt*2由于Atoi()返回两个参数(整数和err),我使用myInt,_:=来检索值的整数。我想将它加倍(因此是第二行)但不能在一行中完成所有操作:myInt,_:=strconv.Atoi(args[1])*2给我:multiple-valuestrconv.Atoi()insingle-valuecontext但是,根据我使用大多数其他语言的经验,必须在两行中执行此操作似乎有很多样板。这只是我必须处理的一个限制,还是有

elasticsearch - 戈朗错误 "not enough arguments in call"

我刚接触golang。尝试通过golang实现批量上传到Elasticsearch。我正在使用golang库->https://github.com/olivere/elastic用于与Elasticsearch通信。此外,我正在尝试一段示例代码,但出现以下错误...suresh@BLR-245:~/Desktop/tools/golang/src$goinstallgithub.com/crazyheart/elastic-bulk-upload#github.com/crazyheart/elastic-bulk-uploadgithub.com/crazyheart/elasti

go - 为什么不 foo := foo() result in an error?

我试图理解为什么在Go中以下代码不会产生错误。funcmain(){foo:=foo()fmt.Println(foo)}funcfoo()int{return1}Foo已经在全局范围内定义了,为什么我可以重新定义它? 最佳答案 https://golang.org/ref/spec#Declarations_and_scopeAnidentifierdeclaredinablockmayberedeclaredinaninnerblock.Whiletheidentifieroftheinnerdeclarationisinsco

java - 套接字编程 : Is extra '\n' added in the golang client or the Java server?

我写了一个JavaTCP套接字服务,这个服务被golang客户端使用。当在golang端解析服务器套接字响应时,事情变得很奇怪。具体来说,这个Java服务器代码:BufferedWriterbw=newBufferedWriter(newOutputStreamWriter(output));bw.append('Y');bw.append('E');bw.append('S');bw.append('\n');bw.flush();还有这个golang客户端代码:extendTimoutFor(client.conn)rspMsg,fault:=bufio.NewReader(cli

Golang 项目 Travis CI Build 失败,错误为 `Makefile:15: recipe for target ' test' failed`

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎与helpcenter中定义的范围内的编程无关。.关闭3年前。Improvethisquestion我已经为我的Github项目设置了travisbuildCaptain.travis.yml的内容是:language:gogo:-1.12.xscript:makeenv:-GO111MODULE=onGOPROXY=https://proxy.golang.org我的Makefile的内容是:#GoparametersBINARY_FOLDER=./binGOCMD=goGOBUILD=

mysql - 戈朗 : How do you connect to multiple MySQL databases in Go?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭6年前。Improvethisquestion同时操作3个或更多数据库,读/写拆分,有连接池。

go - 运算符 = 和 := in struct in Golang

为什么这行不通?它适用于:=运算符,但为什么我们不能在这里使用=运算符?packagemainimport"fmt"typeVertexstruct{X,Yint}funcmain(){v1=Vertex{1,2}//hastypeVertexv2=Vertex{X:1}//Y:0isimplicitv3=Vertex{}//X:0andY:0p=&Vertex{1,2}//hastype*Vertexfmt.Println(v1,p,v2,v3)} 最佳答案 您可以通过多种方式创建新的Vertex类型的实例:1:varcCircl

unit-testing - httptest.NewRequest 与 http.NewRequest : which one to use in tests and why?

Golang有这两个相似的库http和httptest并且它们都有NewRequest函数。如果http.NewRequest能做到这一切,为什么我们还需要httptest.NewRequest?如果我需要为我的测试创建多部分/多形式请求,我需要使用哪一个? 最佳答案 如文档中所示,httptest.NewRequest“返回一个新的传入服务器请求,适合传递给http.Handler进行测试”,而http.NewRequest“返回适合与Client.Do或Transport.RoundTrip一起使用的请求。”因此,如果您在单元测

go - 为什么我们需要 := symbol in golang?

我确实理解=和:=在golang中的区别,我的问题是为什么我们实际上需要:=?难道编译器不能自己弄清楚一个变量还没有定义吗?仅仅是为了可读性吗? 最佳答案 因为您可以在内部作用域中隐藏外部作用域变量,例如闭包或循环;编译器不能仅仅根据变量之前是否存在来推断。必须显式定义变量还有助于减少PHP和JavaScript等语言中常见的缺陷,这些缺陷允许您只使用foo=bar而无需考虑是否定义了foo.这种松散的编译为常见错误铺平了道路,如打字错误,这样它们就不会在编译时被捕获,它们会在运行时显示为“奇怪的行为”,这非常非常难以追踪并修复。

go - "go build"一个文件夹中的多个程序

我有functions/hello.go文件运行gobuild会在同一目录中创建新的二进制文件functions。我想在functions目录中有两个源文件:hello.go和hello2.go并且能够运行gobuild生成两个二进制文件:hello和hello2。如何实现? 最佳答案 Go包是按目录划分的。这意味着您在一个目录中只能有一个包,因此最多只能有一个“主”包。您尝试做的事情根本不可能*。您需要创建子目录:functions/hello/hello.gofunctions/hello2/hello2.go然后你可以这样构建