草庐IT

pointer_traits

全部标签

pointers - 附加到作为 map 中值的 slice

这个问题在这里已经有了答案:Go:appenddirectlytoslicefoundinamap(1个回答)关闭4年前。我想附加到作为map值的slice,例如给定mmap[string][]string:ifvalues,exists:=m[key];exists{values=append(values,v)//Idon'twanttocall:m[key]=values}else{m[key]=[]string{v}}这显然行不通,所以我尝试不按原样附加值,而是执行如下操作:valuesPtr:=&values*values=append(values,v)但这也行不通。我该怎

pointers - 返回给函数的调用者时无法保留 golang 字段的值

我有一个函数接受值和字段的slice作为一组可选参数,该函数将每个值映射到一个字段并返回错误(如果有的话)给调用者,如下所示funcUnmarshall(source[]interface{},dest...interface{})error{iflen(source)!=len(dest){returnerrors.New("sourceanddestinationdoesn'tmatch")}fori,s:=rangesource{dest[i]=s}returnnil}在调用者的代码下方for_,r:=rangerows.Values{item:=entity.Item{}e:=

pointers - 指针 slice 的指针在制作时 panic

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭3年前。Improvethisquestion我有以下代码:varANIMATIONS*[]*SDL.Animable....funcmain(){*ANIMATIONS=make([]*SDL.Animable,0,100)但是运行的时候会出现panic。正确的初始化方法是什么?错误:panic:runtimeerror:invalidmem

pointers - golang 具有指针的指针或指针的引用功能?

大家好Golang中的每个人,如果您需要更改指针(更改指针指向的位置而不是更改此指针指向的值),您会怎么做?我知道在C++中使用引用非常简单,比如“voidmyFunc(Type*&ptr){ptr=anotherPointer;}intmain{Type*ptr=&someValue;myFunc(ptr);//ptrismoved}或者等效地在C中,使用指针的指针:voidmyFunc(Type**ptrsptr){*ptrsptr=anotherPointer;}intmain{Type*ptr=&someValue;myFunc(&ptr);//ptrismoved}我想知道G

pointers - 如何定义一个函数,该函数接收一个指针作为参数并返回一个指向该参数的子节点之一的指针?

现在我正在学习Go,这是我第一次接触指针。但这有点棘手,我开始怀疑我这样做是对还是错。标题是我最好的猜测,试图用外语解释我想做的事情,所以如果不清楚,我可以尝试用不同的方式解释。这是代码的简化示例:https://play.golang.org/p/eultYp7Cq12funchasCity(elementstring,state*State)(bool,*City){for_,city:=range(*state).Cities{if(city.Name==element){returntrue,&city}}returnfalse,nil}如您所见,输出为:true&{Campi

pointers - 如何通过 Go 中的 map 指针更改/访问 map 实例的值?

假设我们有代码:varCache_map*map[string]intCache_map=new(map[string]int)那我们要在Cache_map中加入key:type&value1,怎么办? 最佳答案 在这种情况下不需要new、make或映射指针。骨架/示例:packagemainimport"fmt"varCacheMap=map[string]int{}funcmain(){CacheMap["type"]=1fmt.Printf("%#v\n",CacheMap)}Playground输出:map[string]i

pointers - 取消引用结构指针是否复制结构?

我有thiscode:typecountHolderstruct{countint}funcmain(){a:=&countHolder{1}b:=*aa.count=2println(b.count)}我预计输出为2,但输出为1。我的理解是:a:=&countHolder{1}//a是指向数据从地址x开始的结构的指针b:=*a//b现在等于地址xa.count=2//存储在地址x的结构体的计数值变为2我哪里错了?b:=*a是在创建结构的副本吗? 最佳答案 来自finespecification:Foranoperandxoftyp

pointers - 检查 Go 中字符串指针的长度

如何找到来自结构的字符串指针的长度。目前正在写单元测试,想看看一个字符串指针是否小于250个字符。如果r是my并且myString是字符串指针。此代码无效:iflen(r.myString)>256{returnErrStringTooLong} 最佳答案 您应该解释为什么您的代码不正确,以及您收到的错误消息。如果它是一个指向字符串的指针,你应该用asterix*len(*r.myString) 关于pointers-检查Go中字符串指针的长度,我们在StackOverflow上找到一个

pointers - 如何检测golang中的结构指针是否为nil?

如下代码所示:n:=localplugin.NewPluginNet(),n的类型为localnet.Net,这是一个由结构指针*localnet.DomainSocket实现的接口(interface)。函数funcNewPluginNet()localnet.Net返回一个指向n的nil指针。varnlocalnet.Netn=localplugin.NewPluginNet()fmt.Println("---->",n)ifn==nil{fmt.Println("nisnil")}else{fmt.Println("nisnotnil:",n)}fmt.Println(refle

go - 再次出现运行时错误 : invalid memory address or nil pointer dereference,

这个问题在这里已经有了答案:Runtimeerror:invalidmemoryaddressornilpointerdereference(1个回答)关闭3年前。我正在尝试将mysqlstore后端包用于GolangWeb应用程序中的gorillasession。我正在关注thisexample我的代码是相同的。代码构建并运行良好,但是当我在浏览器中转到localhost:8080/时出现此错误runtimeerror:invalidmemoryaddressornilpointerdereference这是我的代码:packagemainimport("fmt""github.co