草庐IT

map函数

全部标签

go - 是否有结构类型的构造函数接口(interface)?

在golang中,假设我有一个类型需要在使用前对其进行一些设置,而不仅仅是设置默认值。例如:typedicestruct{inputstringcountintsidesintresultint}func(d*dice)Roll(){//initializerandomseedrand.Seed(time.Now().UnixNano())fori:=0;i简单的例子,但是如果我想在创建“骰子”类型的实例时自动调用d.Roll()有没有办法做到这一点?更符合我要解决的问题,说我希望在调用Roll()之前自动调用rand.Seed(time.Now().UnixNano())位是否有惯用

mongodb - 使用 Golang 和 MGO 创建一个返回 mongo 集合的函数

我是GOLANG的新手-我想降低我的GOAPI中处理程序的复杂性。我来自Node.js背景!目前路由处理器看起来像这样:funcgetCards(cweb.C,whttp.ResponseWriter,r*http.Request){session:=*MongoConnection().CreateSession()defersession.Close()collection:=session.DB(db).C(cardsCollection)result:=[]Card{}err:=collection.Find(bson.M{}).All(&result)iferr!=nil{p

go - 在 Sublime (Golang)中重命名变量/函数的常见做法是什么?

静态类型语言的优势之一是重构工具。至于Golang,我觉得只要一个rename工具就可以跨文件工作了。是否有用于sublime文本编辑器的工具/插件?目前可用的方法:Ctrl-D多光标选择,在文件中工作正常。gorename在命令行中工作。是否可以重命名在sublime中(无需切换到命令行并返回)? 最佳答案 我相信SublimeText支持搜索/替换文件。那会有什么问题吗?电子邮箱:mansubl 关于go-在Sublime(Golang)中重命名变量/函数的常见做法是什么?,我们在S

json - 如何以 json 格式显示 map 中的所有数据 - Golang?

我正在golang中创建一个API,它将简单地以json格式显示map中的所有数据。端点:/keystypeUserControllerstruct{}//NewUserControllerfunctionfuncNewUserController()*UserController{return&UserController{}}//DatastructtypeDatastruct{Datakeyint`json:"key"`Datavaluestring`json:"value"`}vardatamap=make(map[int]string)func(ucUserControlle

json - Go:如何json.Marshal map[int]int?

我知道,Json不支持除键字符串以外的任何其他内容。但是将整个map[int]int转换为临时map[string]int并不总是可行的,因为第二个不适合内存。有没有一种方法可以动态转换int键?是否有任何带有int键的类似json的格式?山药?某种二进制格式? 最佳答案 不,您不能即时转换map。在填充新map之前,您需要拥有原始map(然后可以将其删除)。第一个问题你必须问自己:你打算用那个json做什么,因为现代计算机有很多RAM,所以即使存储4gb也不是问题(我非常怀疑你要发送4gbjson请求)。一旦您知道为什么要对您的内

Go:函数返回指向内存的指针

这个问题在这里已经有了答案:Returnpointertolocalstruct(2个答案)关闭7年前。我正在关注golang之旅,此页面:https://tour.golang.org/methods/3packagemainimport("fmt""math")typeVertexstruct{X,Yfloat64}func(vVertex)Scale(ffloat64)*Vertex{v.X=v.X*fv.Y=v.Y*freturn&v//I'mreturningapointertov}func(vVertex)Abs()float64{returnmath.Sqrt(v.X*v

serialization - `fmt` 包的函数是否支持数组的格式化程序?

我正在尝试提交一封包含多个参数的电子邮件,并且我在一个单独的文件中有一些电子邮件,其中包含一些打印动词,但由于动词太多,我最终得到了这样一行:message:=fmt.Sprintf(util.CONTACT_EMAIL,form.Name,form.Email,form.Email,form.Phone,form.Phone,form.Message,...)它一直在继续,看起来很糟糕。我重复一些动词的原因是为了获得href,例如%s,等等。如果有人对此有更好的方法,我真的很想知道。但是关于我的问题..Go是否有一个类似于vsprintf在PHP中?它基本上以一个数组作为参数,所以它

golang - 递归函数运行期间 slice 中指针的内容发生变化

funcgetAllCertainDivs(classNamestring,idNamestring,htmlTag*HtmlTag,matchingDivs*[]*HtmlTag){fmt.Println(htmlTag.Class)ifhtmlTag.XMLName.Local=="div"{ifhtmlTag.Class==className&&htmlTag.Id==idName{*matchingDivs=append(*matchingDivs,htmlTag)}}for_,tag:=rangehtmlTag.ChildTags{getAllCertainDivs(clas

function - 试图将在程序 1 中创建的类型 ("object") 传递给程序 2 中的函数

我在python上花了很多时间,现在正在尝试学习golang。我正在尝试用golang做一些我经常用python做的事情;本质上是在一个程序中创建一个对象,然后将该对象传递给另一个程序中的方法(或函数)。我知道golang没有对象,但我也认为我不应该定义一个已经定义过的类型。我的示例代码如下:程序1:import("github.com/bndr/gojenkins""bitbucket.org/elsammons/senjink/actions")funcmain(){jenkins:=gojenkins.CreateJenkins(url)_,err:=jenkins.Init()

Golang 容器/列表创建 FindAll 函数

我想知道这是否是创建“通用”(是的,我知道,GoLang中的一个敏感词)列表并将其传递给FindAll函数的方法。这是我的尝试:packagemainimport("container/list""fmt""strings")funcFindAll(lst*list.List,pfunc(interface{})bool)*list.List{ans:=list.New()fori:=lst.Front();i!=nil;i=i.Next(){ifp(i.Value){ans.PushBack(i.Value)}}returnans}funcConvertToInt(pfunc(int