草庐IT

new_variable

全部标签

variables - 如何对变量使用多态性

我是Go新手,开始学习多态性。当多个对象需要使用相同的功能时,我知道如何去做。但是我有一个新问题,如果我在不同的对象上有相同的变量,我不知道该怎么办。在下面的示例中,我有两个不同的对象:struct1和struct2。它们都有相同的变量name。我可以跑过它们并检查哪个是哪个并相应地工作(你可以测试它here):packagemainimport("fmt")typestruct1struct{namestring}typestruct2struct{namestring}funcmain(){structMap:=make(map[string]interface{})s1:=str

variables - Golang 中不同的变量类型声明

您好,自上次查看以来我才开始学习Go,阅读了一些文档并注意到它与定义结构或接口(interface)有关。仍然无法区分varresult[]Struct和result:=Struct{}有没有我可以引用的特定文档? 最佳答案 第一个示例中的结果是一个nilslice。规范说变量是initializedtotheirzerovalues那zerovalueofasliceisnil.第二个示例中的result是一个Struct值。它使用shortvariabledeclaration和compositeliteralStruct的值。

variables - 有没有办法获取范围内变量的名称和值?

我正在尝试为将事件发送到哨兵的记录器编写一个处理程序。我想将范围内的变量作为上下文包含在内,以便于调试。有没有办法做到这一点(缺少WriteHeapDump)? 最佳答案 Isthereawaytogetthenamesandvaluesofvariablesinscope?没有。 关于variables-有没有办法获取范围内变量的名称和值?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

go - 传播时 "Cannot use variable of type []struct as []interface"

这个问题在这里已经有了答案:sliceofstruct!=sliceofinterfaceitimplements?(6个答案)关闭8个月前。原型(prototype)函数functest(i...interface{}){//Codehere}预期用途typefoostruct{//Fields}foos:=[]foo{//foo1,foo2...}test(foos...)//ERRORtest(foos[1],foos[2],...)//OK错误cannotusefoos(variableoftype[]foos)as[]interface{}valueinargumenttot

variables - Golang 的 init() 函数中的包范围变量赋值

我想在一些Go代码中初始化一个包范围的变量以连接到数据库,但我一直收到nil指针异常,很明显赋值没有正确发生。这会引发错误:packagemainimport("fmt""database/sql"_"github.com/lib/pq")varconnection*sql.DBfuncinit(){connectionString:="host=172.17.0.3dbname=postgresuser=postgrespassword=postgresport=5432sslmode=disable"connection,err:=sql.Open("postgres",conne

戈朗 : Wait x amount of time before looping again without starting new goroutine

我有一个循环,需要等待一段随机时间才能再次循环。我有什么:for{rand.Seed(time.Now().UnixNano())r:=rand.Int()//Dostufft,_:=time.ParseDuration(string(r)+"ms")time.Sleep(t)}不幸的是,循环会运行多次,就像time.Sleep不工作一样。 最佳答案 您应该检查当前从t,_:=time.ParseDuration中丢弃的错误:您传递给Sleep的time.Duration处于零值,这会导致函数休眠0纳秒。更改#1:处理错误t,err

go - 结构体在 Go 中包含接口(interface)时的 new 与 {}

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。2年前关闭。Improvethisquestion我有一个问题,就像下面的代码一样。packagemaintypeIinterface{Get()}typeAnimalstruct{}func(a*Animal)Get(){}typeDogstruct{Animal}funcmain(){variIi=new(Dog)//successi=Dog{}//error}游乐场:https://play.golang.org/

for-loop - 遍历 channel 时出现错误 "too many variables in range"

我在这里有点迷路了,我试图让一个goroutine添加到数组中,并让另一个goroutine从中读取,我怀疑这有点接近我下面的内容,但我需要尝试一下等待()。但是,我收到错误prog.go:19:14:toomanyvariablesinrange,第19行是for_,v:=rangec{我在网上找不到这个问题的答案,我在这里做什么或不做什么?packagemainimport("fmt"//"time""sync")funchello(wg*sync.WaitGroup,s[]int,cchanint){for_,v:=ranges{c 最佳答案

variables - golang 变量替换

如何在go中使用变量替换?例如我有以下代码:debug_level:="Info"log.Info("DebugTest")我可以为日志函数使用变量debug_level而不是直接传递参数吗?像这样的东西:debug_level:="Info"log.${debug_level}("DebugTest")谢谢。 最佳答案 Go是一种静态类型语言,如果您通过名称调用函数或方法,编译器无法检查您提供的参数是否与函数的签名匹配。改为使用函数变量:当前保存方法或函数的变量名称可以是函数类型的变量,保存函数或方法值.假设我们有以下日志功能:f

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,