草庐IT

kafka参数

全部标签

go - 将参数解析为 bool 或仅在 switch 语句中使用字符串

我遇到过几种情况,我想使用路由来更改数据库中的某些Is_Active字段,但我对性能很好奇。让我们有一个路由处理程序:functestHandler(r*mux.Router){r.HandleFunc("/test/{status}"statusHandler).Methods("GET")}现在该参数将永远为0或1,除非用户尝试其他操作,但无论哪种方式,除非它为0或1,否则什么也不会发生。我的问题是,将字符串解析为bool值是否更快,这将涉及带来在strconv包中还是只对字符串进行切换会更快?两者的例子:funcstatusHandler(whttp.ResponseWriter

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

url - 从 URL 中提取不区分大小写的查询参数

我正在尝试从URL中提取不区分大小写的查询参数/staging/ec/23463/front-view-72768.jpg?angle=90&or=0x0&wd=400&ht=200。当我尝试将整个URL转换为小写时,它会抛出以下异常:cannotuser.URL(type*url.URL)astypestringinargumenttostrings.ToLower我打印了URL的值,它表示底层将所有查询字符串存储为map,即map[angle:[90]or:[0x0]wd:[400]ht:[200]]。因此,我将使用此r.URL.Query().Get("or")获得正确的值,但是

go - 如何在函数中传递动态参数

我在做什么funcfoo(astring){}funcbar(b,cstring)typefnfunc(string)m:=map[string]fn{"a":"foo","b":"bar"}什么是输出当我这样调用函数时m["a"]("Hello")m["b"]("Hello","World")我得到一个错误,因为typefnfunc(string)这里fn有一个参数,但我在m["b"]("Hello","World")中传递了两个参数Error:[cannotuse(typefunc(string,string))astypefninmapvalue]我在找什么我想制作动态的type

arrays - 为什么在 Go 中调用可变参数函数时不能_直接_使用数组?

给定一个(可变参数)函数的原因是什么funcvarargs(n...int){}可以这样称呼varargs(1,2,3,4)//Fixednumberofarguments但不是数组:a:=[4]int{1,2,3,4}//Fixednumberofelementsvarargs(a...)//Error:cannotuse(type[4]int)astype[]intinargument我明白为什么vars[]int=a不会工作:它可以防止意外误用,需要手动slice:s:=a[:]但为什么此限制会扩展到对可变参数函数的调用?奖励问题:反过来,为什么会调用funcfourargs(w

go - 如何获取函数参数的类型

我正在尝试使用结构的类型作为我想要得到的函数的一般参数:typecomments[]struct{IDstring`json:"id"`Authorstring`json:"author"`Textstring`json:"text"`}handleReadAll("/getsome")funchandleReadAll(getPathstring){varsomeVarcomments}正如您所看到的,我将someVar作为类型注释,我需要对该类型进行通用使用,以便我可以将handleReadAll与通用类型结构一起使用,这是我迄今为止尝试过的方法:handleReadAll("/g

go - 在 Go 工具中忽略命令行参数

我目前正在用Go编写我的第一个小工具,我遇到了一个问题,无论我做什么,一个命令行参数都会被忽略。mainFile:=flag.String("input","./generator.ini","theinputfile")outputFile:=flag.String("foo","Defaultdirectoryfoobarblablabla","theoutputdirectory")fmt.Println("Param:",*outputFile)outputDir:=filepath.Clean(*outputFile)flag.Parse()fmt.Println("Outp

GoLang 字符串参数打印

我有一个类似这个例子的sqlselect语句:queryValues=make([]interface{},0,5)queryValues=append(Name,obj.Name)queryValues=append(Age,obj.Age)whereClause:="wherename=$1andage=$2"query:=fmt.Sprintf("Select*fromTable1%s;",whereClause)rows,err:=dbConnection.Query(query,queryValues...)我有几个问题。queryValues之后的...是什么?为什么当我查

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

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

go - 为什么 runtime.caller(0) 在单元测试中使用 '--cover' 参数给出不同的路径

当尝试不带任何参数执行单元测试函数时,它给出以下输出路径C:/ProgramFiles(x86)/Go1.8\bin\go.exe"test-vgclassec/skyline/loggers-run^TestCreateLogFilesPath$filePath:===C:/GerritNew/goclassec/src/gclassec/skyline/loggers/logs.go但是当我尝试使用任何参数运行它时,例如--cover文件路径值更改如下:"C:/ProgramFiles(x86)/Go1.8\bin\go.exe"test-v--covergclassec/skyl