草庐IT

USE_SMART_POINTERS

全部标签

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上找到一个

go - 在 Golang 中使用全局列表变量。接收 "Use of package list without selector"

我有一个名为rooms的全局链表。它将存储该用户输入的所有房间的名称。在我的函数创建中,我试图引用这个名为房间的列表。我在我的主要功能中实例化列表。当我尝试将项目添加到列表“房间”时,我收到错误“使用不带选择器的包列表”。我希望能够从我的创建函数中向我的名为房间的列表中添加一个字符串。packagemainimport("net""fmt""bufio""os""container/list")varroomslistfunccreate()string{reader:=bufio.NewReader(os.Stdin)fmt.Print("NametheChatroom");inpu

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

pointers - 如何使用golang将结构的方法作为参数传递给另一个函数

对不起,我又发帖了。在我提出问题之前,我已经阅读了解决方案。我认为这对我没有帮助,因为我的问题是如何将函数作为参数传递?我不想调用它。我只是想把它传递给另一个我不能编辑(或者我不想编辑)的函数,我想用一个字符串变量来指向这个函数funcName:="Go"m.set(t.funcName)我觉得这和这个问题不一样CallaStructanditsMethodbynameinGo?例如我有这样的功能:typeContextstruct{}typemyclassstruct{}typeHandlerfunc(c*Context)func(r*myclass)set(chHandler){}

go - Go 编译错误 : cannot use new(SimpleChaincode)

从IBMBluemix文档编译“DemoChainCode”的应用程序时,我不断收到此错误:.\Asgn5.go:28:不能使用new(SimpleChaincode)(类型*SimpleChaincode)作为类型shim.Chaincode在shim.Start的参数中:*SimpleChaincode没有实现shim.Chaincode(Initmethod的类型错误)有Init(shim.ChaincodeStubInterface,string,[]string)([]byte,error)想要Init(shim.ChaincodeStubInterface)([]byte,

pointers - 从 reflect.Value 中提取 uintptr

给定//IknowthatbehindSomeInterfacecanhideeitherintorapointertostruct//IntherealcodeIonlyhavev,notii:=something.(SomeInterface)v:=reflect.ValueOf(i)varpuintptrif"iisapointertostruct"{p=???}在这种情况下,我需要一些方法来区分指针和值。如果i是指向结构的指针,我需要将其转换为uintptr。到目前为止我发现了一些事情:(*reflect.Value).InterfaceData()的第二个成员将是指向该结构的