草庐IT

Python函数知识点

全部标签

go - 为什么当我超时函数时不调用延迟?

当我在函数中添加延迟时,我希望它在函数结束时始终被调用。我注意到当函数超时时它不会发生。packagemainimport("context""fmt""time")funcservice1(ctxcontext.Context,r*Registry){ctx,cancel:=context.WithTimeout(ctx,100*time.Millisecond)deferfunc(){r.Unset("service1")}()r.Set("service1")goservice2(ctx,r)select{case%v\n",key,val)}}funcNewRegistry()

go - 将指针传递给接口(interface)时函数抛出错误?

这个问题在这里已经有了答案:"ispointertointerface,notinterface"confusion(2个答案)关闭4年前。所以这就是我遇到的,我不明白为什么会出错:packagemainimport("fmt")//defineabasicinterfacetypeIinterface{get_name()string}//defineastructthatimplementsthe"I"interfacetypeFoostruct{Namestring}func(f*Foo)get_name()string{returnf.Name}//definetwoprint

go - 断言失败触发函数

我可以在断言失败时调用函数吗?例如,assert.True(t,condition)//invokeafunctionsuchasprintingamap更新:根据建议,我写了一个小例子。但似乎不起作用。断言.gopackagemainimport_"fmt"funccompute()bool{returnfalse}断言测试.gopackagemainimport("fmt""github.com/stretchr/testify/assert""testing")funcpMap(){amap:=map[int]string{1:"hello1",2:"hello2",}fori,

golang crontab 每天午夜执行函数

我想每天中午12:05使用此crontab库https://github.com/robfig/cron执行功能。这是我当前的代码:cronHandler.AddFunc("@midnight",func(){fmt.Println("crontabping")}我如何每天凌晨03:00,时区+2使用crontab执行我的功能?我的问题是当前函数使用我的服务器的时区,第二个问题是这个库不允许在特定的特定时间执行。我该怎么做? 最佳答案 这可以通过cron来完成库以及对代码的一些小调整。一些事情:通过在时区数据库的列表中找到您选择的时

go - for init 语句只进入函数一次

我开始使用Go进行编程,我正在尝试创建一个程序来查询数据库并返回数据。我做到了这一点,但在此期间我遇到了一些问题。首先,我尝试创建一个带有条件的for来告诉程序何时我想停止查询,但是for的Init语句看起来只被评估一次-而且我再也不会被要求通过输入输入terminal-(我在这里读到是因为他的值是hold然后它不再执行函数:Golangswitchstatementonlycallsfunctiononce):已编辑funcmain(){varquerystringforquery=ReadQuery();query!="exit\n";{rows,err:=db.Query(que

go - 在 Hyperledger fabric 中,如何打印出链代码函数的消息和日志?

我想通过Golang测试我的链代码,所以我使用了Hyperledgerfabricchaincodedev测试。链码的所有功能(调用、查询等)都有效,但控制台上没有链码的日志和消息。在每种情况下,日志记录都设置为“调试”。我想在控制台打印出调用、查询的结果消息,但只打印出消息:“myc”;“我的C”;“我的C”;...2019-03-1518:07:04.550UTC[shim]setupChaincodeLogging->INFO001Chaincodeloglevelnotprovided;defaultingto:INFO2019-03-1518:07:04.550UTC[shi

go - 如何编写接受任何映射的函数

这个问题在这里已经有了答案:Convertmap[interface{}]interface{}tomap[string]string(3个答案)关闭3年前。我试过这样写:funcKeyExists(mmap[interface{}]interface{},kinterface{})bool{if_,ok:=m[k];ok{returntrue}returnfalse}当尝试使用m[int]int运行它时,我得到:cannotusexxx(typemap[int]int)astypemap[interface{}]interface{}inargumenttoKeyExists为什么?

go - 如何将函数应用于 Golang 中的整数输入

例如,如果输入是这个1345全部由空格分隔,我想应用对每个数字进行平方然后相加的功能。我只是不知道如何将函数应用于每个数字。我所能想到的是,我必须将数字放入一个slice中,然后将该函数应用于每个数字。我到处都看过,但找不到如何执行此操作。在Python中,我只是这样做,并且我已经将值放入名为“n”的列表中。#Thelistispastedfromtheinitialpuzzlen=[10,10,9,8,10,10,10]#Thelistisfirstsquaredb=(list(map(lambdax:x**2,n)))b成为对每个数字执行函数的新列表。

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

pointers - 调用结构函数给出 "cannot refer to unexported field or method"

我有这样的结构:typeMyStructstruct{Idstring}和函数:func(m*MyStruct)id(){//doingsomethingwithidhere}我还有一个这样的结构:typeMyStruct2struct{m*MyStruct}现在我有一个函数:funcfoo(str*MyStruct2){str.m.id()}但是我在编译时遇到错误:str.m.idundefined(cannotrefertounexportedfieldormethodmypackage.(*MyStruct)."".id如何正确调用这个函数? 最佳答案