草庐IT

go - "cast"Go中的指针类型如何匹配指向值的类型?

我有一个包含不同变量类型的slice。一些字符串、整数等。我有什么办法可以将指向这些值之一的指针从*interface{}转换为*string或*int32在适当的地方。这是一个演示问题的玩具程序:http://play.golang.org/p/J3zgrYyXPq//StoreastringintheslicevalSlice:=make([]interface{},1)varstrValstring="test"valSlice[0]=strVal//CreateapointertothatstringptrToStr:=&valSlice[0]//Outputs"stringv

postgresql - 通过 pq 连接到 PostgreSQL 数据库返回 "bad connection"错误

我正在使用两台不同的计算机在Go和PostgreSQL中制作一个网络应用程序。两台计算机上的设置相同(Ubuntu与最新版本的Go和PostgreSQL)。问题是我无法让我的应用程序连接到笔记本电脑上的数据库。我使用这段代码:func(db*Database)Dial(userstring,passwordstring,dbnamestring){varerrerrordb.Conn,err=sql.Open("postgres","user="+user+"password="+password+"dbname="+dbname+"sslmode=require")iferr!=ni

Go语言: Change the build folder when running "go run"

在Windows上使用Go,每当我从控制台执行gorunmyprog.go时,Go都会在我的C盘某处构建一个具有随机名称的新可执行文件。有没有办法配置它,使其始终将文件构建到特定位置,最好也避免名称的随机性?(即,始终构建到D:\Temp\LastBuild.exe)。我能够找到一些在执行gohelprun和gohelpbuild时没有帮助的信息。后者有一个输出标志-ooutfile但它在gorun中不被接受。感谢任何帮助。 最佳答案 不要使用gorun。它旨在快速测试单屏行大小的代码片段。工作方式是编辑代码。去构建它。运行您的可执

go - 调用 c 函数, "import fmt"的顺序, "import C"导致构建错误,为什么?

我有以下简单的测试代码:call_c.gopackagemain/*intgetData(int*p,intn){inti;for(i=0;i我使用“gobuildcall_c.go”来构建程序并且构建良好。但是我发现,如果我简单地颠倒“importfmt”、“importC”的顺序或者在C/**/block代码和第一个import语句之间添加一个换行符,“gobuildcall_c.go”命令将返回一个错误:gobuildcall_c.go37:error:'getData'undeclared(firstuseinthisfunction)专家gophers的问题:为什么导入顺序在

go - Q : Getting Build Error "Invalid Import Path"

我坚持使用它说的“beerun”来运行BeeGO应用程序问题是我已经正确设置了我的GOPATH到D:/WebDev/GO/BeeGO/test-project/并且路由器路径确实存在,我已尝试手动构建文件,但它不会生成.exe文件。有人知道如何解决这个问题吗?我使用的是Windows8.1Pro(64位)谢谢 最佳答案 GO期望$GOPATH下的目录结构按照codeorganization中描述的以下方式:$GOPATH/src与其将源文件直接放在$GOPATH下(D:/WebDev/GO/BeeGO/test-project/对于

if-statement - Golang - 使用框架时在 "if"语句后提供返回

它给出错误在函数末尾缺少返回值。我试过添加returnnil、return""、returnc.String和其他几个,但都没有用。packagemainimport("github.com/hiteshmodha/goDevice""github.com/labstack/echo""net/http")funcmain(){e:=echo.New()e.Get("/",func(c*echo.Context,whttp.ResponseWriter,r*http.Request)*echo.HTTPError{deviceType:=goDevice.GetType(r)ifdev

go - 文本/模板 : "can' t call method/function with 0 results. "

如何在不返回任何值的模板中执行函数?这是示例:funcmain(){u,err:=url.Parse("http://example.com/test?param1=true¶m2=true")iferr!=nil{log.Fatal(err)}m:=u.Query()m.Del("param1")//param1successfuldeleted!u.RawQuery=m.Encode()fmt.Println(u.RawQuery)consttmpl=`{{$m:=.Query}}{{$m.Del"param2"}}{{.RawQuery}}`t:=template.Mus

如果在 const 定义中声明和使用自定义类型,Godoc 不会生成 "const"字段?

我发现Godoc是自动生成文档的好工具。但是我发现,如果我定义一个自定义类型并在我的常量定义中使用它,在godocHTML中,常量将显示在该类型下,而不是在包级别。这是一个简单的例子:const(Info=iotaWarningError)这将在godoc的顶部生成一个“常量”标题。但是,如果我执行以下操作,则不会有ConstantsheadingforthepackagetypeLevelintconst(InfoLevel=iotaWarningError)在godoc输出中,常量将显示在typeLevel下,位于文档中间的某个位置,但不在顶部,也不在包级别。有没有办法使用自定义类

go - 无论我使用什么 dBase (.dbf) 文件,binary.read 都会返回 "unexpected EOF"

funcmain(){file,err:=os.Open("example.dbf")//Forreadaccess.iferr!=nil{log.Fatal(err)}dBaseioReader,err:=NewReader(file)iferr!=nil{log.Fatal(err)}returnnil}typedbHeaderstruct{VersionbyteLastUpdate[3]byteNumRecordsint32NumBytesInHeaderint16NumBytesInRecordint16_[2]byte//reservedIncompatFlagbyteEnc

git - "go get"除 golang.org 之外的所有来源的 git 错误

go版本go1.5.1windows/amd64git版本1.9.5.msysgit.1我一直在尝试获取一些Go库。在golang.org上访问时,它们下载正常但是github.com或google.golang.org包给出了一个错误。Thereisnotrackinginformationforthecurrentbranch.Pleasespecifywhichbranchyouwanttomergewith.Seegit-pull(1)fordetails 最佳答案 从GOPATH中删除包并重新获取它。您的包已修改,但git