草庐IT

test_map

全部标签

loops - range 子句针对 map 等不同的数据结构类型返回哪些不同的变量?

当遍历数组时,返回的第一个变量是索引,返回的第二个变量是值:array:=[]int{2,3,4}forindex,value:=rangearray{fmt.Printf("Index:%s,Value:%s\n",index,value)}使用range子句遍历map时返回什么。它与数组不同。无论如何不可能有map的索引。我们能得到键名吗? 最佳答案 根据documentationofrangeclause,以下是与它一起使用的不同类型的返回值:对[n]E、*[n]E或[]E进行数组或slice:第一个值:indexiint第二

unit-testing - 如何为一小时后函数返回时间编写单元测试

我有以下函数,它在当前时间添加给定的小时数并在中返回新时间funcgetExpiryTime(hourint)*string{constlayout="2006-01-02T15:04:05Z"expiryTime:=time.Now().Local().Add(time.Hour*time.Duration(hour))returnaws.String(expiryTime.Format(layout))}为此功能编写单元测试的最佳方法是什么? 最佳答案 您可以尝试模拟时间提供程序并在您的模拟中设置time.Now()函数以返回您

go - 对这个 map[string]struct 的定义方式感到困惑

我理解go中的map,但这段代码让我感到困惑:testCases:=map[string]struct{pod*api.Podrequired[]corev1.ResourceNameerrstring}{"initcontainerresourcemissing":{pod:&api.Pod{Spec:api.PodSpec{InitContainers:[]api.Container{{Resources:api.ResourceRequirements{Requests:api.ResourceList{api.ResourceCPU:resource.MustParse("1m

unit-testing - 去单元测试无法加载文件

1、gotestconfig_test.go,总是文件,error:openconf/config.yml:Thesystemcannotfindthepathspecified2、源码ok3、gotestfile如何在不同目录下成功 最佳答案 测试期间您的工作目录不同。您可能需要动态计算配置目录路径的解决方法,例如:http://www.kaihag.com/external-assets-working-directories-and-go/ 关于unit-testing-去单元测试

unit-testing - 错误 : suite. go:61: test paniced: reflect: Call with too few input arguments

我正在golang中设置单元测试。但是现在我在运行gotest-v时遇到错误。我想解决这个错误并使测试成功。article├client├api│├main.go│├contoroller││├contoroller.go││└contoroller_test.go│├service││├service.go││└service_test.go│├dao││├dao.go││└dao_test.go│├s3││├s3.go││└s3_test.go│├go.mod│├go.sum│└Dockerfile├nginx└docker-compose.yml现在我正在为service.go设

Go函数写入同一个 map

我正在尝试熟悉goroutines。我编写了以下简单程序来将1-10的数字平方存储在map中。funcmain(){squares:=make(map[int]int)varwgsync.WaitGroupfori:=1;i最后,它会打印一张空map。但是在go中,map是通过引用传递的。为什么打印一张空map? 最佳答案 正如评论中指出的,您需要同步对map的访问,您对sync.WaitGroup的使用不正确。试试这个:funcmain(){squares:=make(map[int]int)varlocksync.Mutexva

map 上的 golang 类型断言令人 panic

这个问题在这里已经有了答案:Convertmap[interface{}]interface{}tomap[string]string(3个答案)关闭3年前。map上的类型断言不起作用,这是正确的方法吗?详细说明一下,我的目标是返回一个具有动态类型的map。此示例仅用于演示。packagemainimport"fmt"funcmain(){m:=hello().(map[string]int)fmt.Println(m)}funchello()interface{}{returnmap[string]interface{}{"foo":2,"bar":3,}}panicpanic:in

string - GoLang 将字符串放入 map

因此,我正在尝试向从toml创建的现有map添加一个字符串。http://hastebin.com/vayolavose当我尝试构建时出现错误:./web.go:56:复制的参数有不同的元素类型:[]proxy.Address和string我将如何转换它?过去大约4个小时我一直在尝试这个。谢谢 最佳答案 而下面的代码就是你的源代码funchandleAddFunc(whttp.ResponseWriter,r*http.Request){backend:=r.FormValue("backend")key:=r.FormValue(

go - 使用 structs 、 maps 或其他东西?

我是Go的新手(在一定程度上是编程新手),所以使用边学边练的方法。对于下面的代码(提取天气预报),我希望从我的列表中填充经度和纬度。我不完全确定如何首先设置该列表-使用结构,然后将存储的结构的值通过管道传递到此代码中?我试过了,似乎我只能在一个结构中容纳一对经/纬度。我正在考虑使用map,但无法弄清楚如何进行设置。也许,我应该将值列表存储在一个文本文件中并从那里读取:p:=Place{placeName:"Accra",lat:"43.6595",long:"-79.3433",placeName:"Kumasi",lat:"43.6595",long:"-79.3433",place

go - 为什么 map[]interface{} 不采用 map[]SpecificInterface

go规范指出:Avariableofinterfacetypecanstoreavalueofanytypewithamethodsetthatisanysupersetoftheinterface.我可以typeSourceinterface{}typeSourceImplstruct{}varsSourceg:=new(interface{})s=new(SourceImpl)*g=s但是,我不能与map相同:generic:=make(map[string]*interface{})specific:=make(map[string]*Source)generic=specifi