草庐IT

pselect函数

全部标签

pointers - 实现一个返回指针的函数

我已经在我的golang应用程序中实现了syslog守护进程服务。我在主包中使用了syslog.New,它可以工作,但现在,我想将它导出到另一个包。packageconfigimport("log/syslog")funcLogBook()?{sysLog,_:=syslog.New(syslog.LOG_LOCAL0|syslog.LOG_ERROR,"myapp")//syslog.Newreturns(*Writer,error)return?}如何实现这个功能?之后,如何在其他包中使用这个变量“sysLog”?谢谢! 最佳答案

optimization - 函数调用导致性能下降

对于以下函数:funcCycleClock(c*ballclock.Clock)int{fori:=0;i其中c.BallQueue定义为[]int,CalculateBallCycle定义为funcCalculateBallCycle(s[]int)整数。for循环和return语句之间的性能大幅下降。我写了以下基准测试。第一个基准测试整个函数,第二个基准测试for循环,而第三个基准测试CalculateBallCycle函数:funcBenchmarkCycleClock(b*testing.B){fori:=ballclock.MinBalls;i使用123个球,得到以下结果:B

go - Go中非测试函数的断言

我想在函数中使用断言,但它不是测试函数。这只是一个普通函数,我想使用类似assert.Equal(param1,some_constant)的函数。我遇到了以下包裹:https://godoc.org/github.com/stretchr/testify/assert虽然,它似乎还需要testing包,并为函数提供类型为*testing.T的参数。Go中有没有其他的assert函数,我可以直接调用assert函数而不实际依赖任何其他测试包或参数? 最佳答案 Go不提供断言。Go团队的语言常见问题解答中有一个部分:https://g

go - 如何在函数中使用接口(interface),其中参数是另一个具有相同函数列表的接口(interface)?

我在函数参数中遇到接口(interface)问题。packagemainimport("fmt")typeAinterface{New()AB()C()}typeBinterface{New()BB()}typeASstruct{}func(AS)New()A{returnAS{}}func(AS)B(){}func(AS)C(){}funcHello(bB){b.New()}funcmain(){fmt.Println("Hello,playground")as:=AS{}a:=A(as)Hello(a)}我遇到了这个错误:tmp/sandbox293137995/main.go:3

go - 声明 go 函数抛出意外(

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭5年前。Improvethisquestion在下面运行我的Go代码时,我一直看到上面的构建错误。我该如何解决这个问题?packagemainimport"fmt"funcdo_comp(varlinestring){fori,c:=rangeline{c,ex:=m[i]ifex==true{fmt.Printf("notuniquechar

testing - 如何测试go中函数的返回值是指向类型的指针?

我在测试用例中突出显示了我希望某些东西应该去的地方。理想情况下,我想测试i是WHAT_SHOULD_I_PUT_HERE的一个实例主.gopackagemainimport"fmt"typeSomeTypestruct{thingThatNeedsSetupstruct{}}funcCreate()*SomeType{return&SomeType{}}funcmain(){a:=Create()fmt.Println(a.thingThatNeedsSetup)}main_test.gopackagemainimport("testing")funcTestCreate(t*test

arrays - 函数应返回 sha256/sha384/sha512 结果作为 byte slice

我正在编写一个函数,它将输入数据作为字符串和要调用的SHA算法的位大小。它应该将生成的散列作为byteslice返回(第一次尝试):packagemainimport("crypto/sha256""crypto/sha512""errors""fmt")funcmain(){input:="Thisisatest."sha256,_:=shaSum(input,256)sha384,_:=shaSum(input,384)sha512,_:=shaSum(input,512)fmt.Println(input,sha256,sha384,sha512)}funcshaSum(data

go - 如何仅将函数的返回值分配给 golang 中的结构字段?

这个问题在这里已经有了答案:Multiplevaluesinsingle-valuecontext(6个答案)关闭4年前。假设我们有这样一个结构:typeDatastruct{aint}而我们想要获取一个返回多个值的函数的单个返回值,并将其赋值给一个Data对象,例如data:=Data{a:strconv.Atoi("1000")}上面的代码不起作用,因为Atoi返回两个值,一个数字和一个错误,所以我们需要以某种方式处理额外的值(错误),但在我的例子中,我不需要评估错误值,它是无法使用_关键字关闭它。在初始化一个结构体时,我想去掉错误的返回值,我该如何实现

go - 列出源代码中的所有函数

我有一个文件夹,其中包含.go文件和在其中定义的函数。是否可以在命令行中列出当前文件夹中的所有函数声明,可能使用godoc?godoclistfunctions/path/to/fileOrFolder要有这样的输出:funcFoo(a,bint)intfuncBar(c,dint)int 最佳答案 当然,Peter的回答已经足够了,但是如果你想进入兔子洞……而且是为了好玩。使用golangstdlibast的强大功能。packagemainimport("fmt""go/ast""go/parser""go/token""io/i

go - 将 json 文件传递​​给 GoLang 函数

刚开始使用Go。我有一个如下所示的Go函数,我必须向它传递一个json文件。如何将json文件引用传递给此函数,即接受它作为接口(interface)映射?funccompressOIds(mapDocumentmap[string]interface{})string{varobjectIdValuestringforkey,value:=rangemapDocument{....}return""} 最佳答案 如果您的JSON结构定义不明确并且可以更改,那就是要走的路:import("fmt""encoding/json")fu