草庐IT

function_to_be_mocked

全部标签

戈朗 : Learning goroutine took me to a deadlock

我是一个GO新手,我正在尝试弄清楚goroutines是如何工作的以及如何同步它们。这是我编写的一个简单程序来了解它们:packagemainimport("fmt""sync""time")funcprintAfterDelay(delaytime.Duration,messagestring,wg*sync.WaitGroup){time.Sleep(delay)fmt.Println(message)wg.Done()}funcadd(aint,bint,chan1chanint,wg*sync.WaitGroup){c:=a+bchan1add函数接受两个int,对它们求和并将

go - [CodeEval][GO] CodeEval 错误 : Process was aborted due to timeout

我正在尝试提交我的https://www.codeeval.com/open_challenges/158/解决方案这是一个冒泡排序。我用GOlang编写代码,在我的PC上它运行良好且快速!我尝试使用go的输入代码示例,我也尝试了自己的一段代码。谁能帮帮我?我尝试以某种方式更改代码,但没有任何效果。提前致谢。 最佳答案 您的代码中可能缺少某些极端情况。参见https://getsatisfaction.com/codeeval/topics/bubble-sort-iterations-are-too-high-causing-so

json - Go 和 JSON : how to dynamically load a field

我知道如何在go中使用JSON和接口(interface)而没有太多问题。我想让用户从JSON字符串中选择一个JSON元素,并将元素模式存储在一个字符串中,以便我以后可以动态加载它。我有以下JSON:{"id":1,"name":"Agreendoor","price":12.50,"tags":["home","green"]}当然,如果我想要我的JSON的id元素,这很容易,因为id是我要保存的字符串。现在假设我想要标签[1]。随着JSON变得越来越复杂,您会发现这变得越来越难。例如,我可能想保存类似于tags[1].data[0].values.id等的模式......基本上,我

function - 将函数体/定义作为参数传递给 golang 中的函数调用

最近在使用golang的过程中遇到了如下问题。将函数体传递给函数调用是否可以,例如javascript。例如setTimeout(function(i){console.log("input:",i)},1000).在javascript中将匿名函数传递给另一个函数是很常见的。我想知道在go中是否相同?packagemainimport("fmt")typeHandlerFuncfunc(int)funcmain(){//defineafunctionasobject/variable?hnd:=func(inint){fmt.Println("funchandlerreturnsin

sockets - io.复制: How to know if a socket is closed or disconnected

我有一个简单的程序,它将程序的stdin、stdout和stderr连接到一个套接字,就像这样,gofunc(){deferconn.Close();deferstdin.Close();io.Copy(stdin,conn);}();gofunc(){deferconn.Close();deferstdout.Close();deferstderr.Close();io.Copy(conn,stdout);io.Copy(conn,stderr);}();select{}我有两个问题,我必须通过执行select{}让这两个goroutine保持运行当套接字断开连接时,无法通知它。如果

function - 在 Go 中将函数作为参数传递

我尝试在Go中创建一个函数,用于重试任何失败的查询函数(通常是因为序列化问题)。funcretryer(functionAfunc(interface{})(interface{},[]error),maxRetryint,waitBetweentime.Duration)interface{}{//whennoerrorinfunctionA,retryerreturnswhateverfunctionAreturns//whenmaxRetryisreached,returnsnil}我想重试的函数看起来像这样funcGetTopStudent(classIdstring)([]S

戈朗 : Passing structs as parameters of a function

尝试通过在线类(class)自学围棋。而且我正在尝试稍微偏离路线以扩展我的学习。该类(class)让我们使用几个变量编写一个简单的函数,该函数将获取这两个变量并打印出一行。所以我有:funcmain(){vargreeting:="hello"varname:="cleveland"message:=printMessage(greeting,name)fmt.Println(message)}funcprintMessage(greetingstring,namestring)(messagestring){returngreeting+""+name+"!"}稍后类(class)介

go - 我们可以在 Go 中使用 select to Accept() 来自不同的监听器吗?

就像下面的代码:for{select{caseconn,err:=listener1.Accept():iferr!=nil{log.Fatal(err)}gohandleConn1(conn)caseconn,err:=listener2.Accept():iferr!=nil{log.Fatal(err)}gohandleConn1(conn)}}虽然编辑器告诉我select有问题我们可以在Go中实现类似的东西吗? 最佳答案 select仅适用于channel(请在此处查看更多信息:https://gobyexample.com

unit-testing - 优步 Cadence : How do I assert the call to workflow. sleep ()?

在我的单元测试中,我想断言调用了workflow.Sleep()。我该怎么做? 最佳答案 可以使用TestWorkflowEnvironment.Now()函数访问模拟时间。例如:before:=testenv.Now()testenv.ExecuteWorkflow(...)after:=testenv.Now()然后断言before和after之间的变化。 关于unit-testing-优步Cadence:HowdoIassertthecalltoworkflow.sleep()?,

c - 关于定义 : Rewriting Algorithm from Go Code to C

目前正在将加权DAG转换为用Go语言编写并进行拓扑排序的C代码。实际上我错过了代码的一部分,即示例下面的函数。我不知道“访问”声明是什么。它是另一个函数中的函数声明吗?如果您使用C语法进行解释,那就太好了。func(g*graph)topoSort()[]int{result:=make([]int,g.size())marks:=make([]bool,g.size())resultIndex:=g.size()-1varvisitfunc(int)visit=func(uint){for_,item:=rangeg.adjList[u]{if!marks[item.vertex]{