草庐IT

go-mocket

全部标签

go - 测试 golang 文件夹结构

我的文件夹结构如下:src/github.com/hello/hello.gohello_test.gointegers/integers.gointegers_test.gohello.go/hello_test.go属于packagemainintegers.go/integers_test.go属于包整数当从文件夹hello的根目录运行gotest时,它只运行hello_test.go。我怎样才能让它递归地运行所有测试。这是在各自的包内构建测试的正确方法吗? 最佳答案 有一个make文件怎么样?将来如果您扩展您的项目并拥有更多

go - 当我添加表达式 "fmt.Println()"时发生了什么

我对golang很感兴趣,在探索channel期间,我对以下代码感到困惑,所以有人可以告诉我它们之间的区别吗?当我运行代码时,控制台记录-5,17如果我使用评论,我会得到不同的结果17,-5我不知道发生了什么......golang版本是最新的//commanfuncfuncsum(a[]int,cchanint){total:=0for_,v:=rangea{total+=v}c我期望两次结果是17,-5,但是当注释没有用时,结果是-517 最佳答案 golang使用调度程序来调度goroutines。您可以在这里阅读更多相关信息

go - 鸭子打字函数

当我尝试使用接口(interface)而不是真正的结构作为函数的返回值时,编译器出错。鸭子打字难道不应该吗?packagemainimport("os/exec")typeRunnerinterface{Run()error}typeMystruct{Cmdfunc(namestring,arg...string)Runner}funcmain(){compiles:=My{Cmd:func(namestring,arg...string)Runner{returnexec.Command(name,arg...)},}doesNotCompile:=My{Cmd:exec.Comma

go - 如何检查元素的 slice 并在值存在或不存在时操作另一个 slice

我正在用Go编写一个程序,它应该检查slice的名称。如果名称存在,则在另一个slice中输入“YES”,如果不存在则输入“NO”。名称slice应由用户输入,并在输入值时开始检查。我写了一些代码,但它似乎不起作用。packagemainimport("fmt")funcmain(){varlimitintvarnamesstringfmt.Scanln(&limit)arr:=make([]string,limit)yn:=make([]string,limit)fori:=0;i输出应该是这样的用户输入的值:5史蒂夫约翰下雨珍娜约翰输出:没有没有没有没有是我遇到的错误是一大堆YES

vue.js - go get wails 安装不正确

尝试使用...golang和wails...但在此之后...去获取github.com/wailsapp/wails/cmd/wails我明白了。../../github.com/wailsapp/wails/cmd/semver.go:21:3:cannotusesemverVersion(typesemver.Version)astype*semver.Versioninfieldvalue../../github.com/wailsapp/wails/cmd/semver.go:48:40:cannotuses.Version(type*semver.Version)astype

go - 如何在 Go 中正确测试 Controller 类

我正在使用gomock生成业务层并模拟其方法结果。到目前为止,我无法让测试通过,它说“想要”和“得到”的值不同我正在将对象的json表示形式传递给strings.NewReader,而“Want”的值“等于{{...”,这可能是问题所在。packageproductimport(//...)var(productBody=`{"seller":{"id":"Foo"},"sku":"kj1293lkxpto","gtin":"7894949501280","name":"Foo","description":"Bar","legacyInfo":{"id":1021,"digit":4

arrays - 在 Go 中使用 slice 进行子集检查

我正在寻找一种有效的方法来检查slice是否是另一个slice的子集。我可以简单地遍历它们来检查,但我觉得必须有更好的方法。例如{1,2,3}isasubsetof{1,2,3,4}{1,2,2}isNOTasubsetof{1,2,3,4}有效执行此操作的最佳方法是什么?谢谢! 最佳答案 我认为解决子集问题最常见的方法是通过map。packagemainimport"fmt"//subsetreturnstrueifthefirstarrayiscompletely//containedinthesecondarray.There

go - 如何使用 HTML 和 CSS 设置 Go 错误的样式?

我想在我的GoWeb应用程序中设置错误样式。目前我正在处理类似以下示例的错误:if!ok{http.Error(w,"Usernameand/orpassworddonotmatch",http.StatusForbidden)return}然而,这会导致错误消息在浏览器中显示为简单文本。我想用HTML和CSS设置我的错误样式,但是简单地忽略http.Error方法并使用:似乎是不好的做法TPL:=template.Must(template.ParseGlob("templates/*.gohtml"))if!ok{TPL.ExecuteTemplate(w,"usernamePas

go - 将接口(interface)指针片转换为结构指针片的最有效方法是哪种?

这个问题已经有了答案:Typeconvertingslicesofinterfaces5答最基本的问题是我得到了一个[]*interface{},我需要把它转换成[]*MyStruct。我在尝试这样的方法,但速度不快。在我的例子中,在示例代码中,lines片段包含映射,因此硬转换不起作用。varlines[]*interface{}varresults[]*MyStructfor_,s:=rangelines{ifs!=nil{someJson,err:=json.Marshal(s)iferr!=nil{continue}v:=MyStruct{}iferr:=json.Unmars

go - gRPC 实现性能 - java v/s goLang

gRPC支持多种语言的rpc服务端和客户端实现。我需要知道在goLangv/sJava中实现gRPC服务器和客户端是否有任何显着的性能差异。如果我们正在寻找高性能和可扩展性,go还是java哪个实现更好谢谢吉里什TS 最佳答案 看看publicgrpcbenchmarks.multi-languageperformancedashboard@master显示Go和Java并驾齐驱。一般来说,Java的性能和延迟稍好一些,但Go在某些情况下表现更好,例如流式乒乓的延迟。由于它们非常相似,因此最好根据其他因素来决定您要使用哪种语言。