草庐IT

as_slice

全部标签

loops - Go:比较两个 slice 并删除多个索引

如何根据比较遍历两个slice并删除多个索引?我尝试了以下操作,但它会导致错误“panic:运行时错误:slice边界超出范围。”packagemainimport("fmt")funcmain(){typeMystruct{SomeValstring}typeOtherstruct{OtherValstring}varMySlice[]MyvarOtherSlice[]OtherMySlice=append(MySlice,My{SomeVal:"abc"})MySlice=append(MySlice,My{SomeVal:"mno"})MySlice=append(MySlice

arrays - GO:数组/slice 到常规字符串

我是golang的新手,也是编程的新手。前进对我来说非常艰难。这是一直让我感到困惑的一件事:数据类型。如果你运行这个(不是在Playground上)然后它会吐出:./main.go:40:cannotuserecorded(typestring)astypeSVCinappend如果我反转附加调用中的值,它会吐出:./main.go:40:firstargumenttoappendmustbeslice;havestring我想做的是抓取主目录中的所有内容,将所有修改后的值追加到数组中,然后使用ioutil将数组放入文件中。我想要的(截至目前)是将值附加到func记录中的slice。有

go - 关于 "cannot use time.Now() (type time.Time) as type "

使用以下类型定义获取“不能使用time.Now()(类型time.Time)作为字段值中的类型typetime”import("time")typetypetimetime.TimetypeFriendsstruct{NamestringBirthdaytypetime}John:=Friends{Name:"John",Birthday:time.Now()}如果我用直接类型形式(time.Time)替换typetime,就没有问题。GO的规则背后是什么??:> 最佳答案 time.Time和typetime是不同的类型(尽管它们

Go - 如何复制接口(interface)的 slice ?

我正在尝试使用辅助数组实现简单的合并排序。我有typebyString[]string实现了Less、Swap和Len方法。它基本上遵循Go的sort包的接口(interface)。但是,我在选择将byStringslice复制到临时数组的最佳路径时遇到了一些困难。请帮助我摆脱Java的多态性世界,使其与Go一起工作。funcmerge(dataInterface,lo,mid,hiint){i,j:=lo,mid+1//HowdoIcopydata'selementstoanewslicecalledaux?} 最佳答案 使用内置

recursion - 尝试将 slice 作为参数传递给递归函数时 slice 超出范围 (Go)

我正在尝试将slice作为参数传递给递归函数。由于slice作为引用传递,我相信我传递给它的递归函数应该能够毫无问题地执行操作。我只使用append(),因此应该不会遇到容量不足的slice问题吧?packagemainimport"fmt"funcallPossiblePaths(arrGraph[8][8]bool,srcint,destint)[][]int{varvisited[]bool//aslicethatmarksifvisitedvarpath[]int//aslicetostoreapossiblepathvarpaths[][]int//aslicetostore

templates - 转到模板 : two or more slices ranges

下一个代码非常适合在HomeTemplate中输出一个slice。主.gotypeItemstruct{IdintNamestringTypestring}vartmpl=template.Must(template.ParseGlob("tmpl/*"))funcIndex(whttp.ResponseWriter,r*http.Request){db:=database.DbConn()selDB,err:=product.ByID()iferr!=nil{panic(err.Error())}i:=Item{}resItems:=[]Item{}forselDB.Next(){v

golang 不支持模板的结构 slice 深度

我遇到了一个独特的问题。为了学习golang,我创建了一个Twitter类的网站。它有推文,每条推文都可以有评论,每个评论都可以有子评论。在homepage.html中显示structpdEnv.Tpl.ExecuteTemplate(w,"homePage.html",pd)其中pd是页面数据(为了简单起见,我删除了额外的信息)typePageDatastruct{TweetView[]tweets.TweetView}tweet.TweetView在哪里typeTweetViewstruct{TweetCV[]comments.Comment}comments.Comment在哪里

go - 无法将实现 Foo 接口(interface)的结构 slice 传递给需要 []Foo 的函数

我正在尝试使用Go中的接口(interface),但我似乎无法将实现某个接口(interface)的结构片段传递给需要接口(interface)片段的函数。它适用于只接受单个对象的函数,但不适用于需要接口(interface)slice的函数。使用下面的代码我得到以下错误:./main.go:27:cannotusefooBar(type[]*FooBar)astype[]FooinargumenttoFooBarBar代码如下:packagemainimport"fmt"typeFoointerface{Bar()bool}typeFooBarstruct{abool}func(f*

go - 在函数中传递接口(interface) slice 并解码到它的项目中

我可以将一片结构传递给函数,转换为[]interface{},填充它并在函数结束后使用吗?这是问题的完整示例https://play.golang.org/p/iPijsawEEg简短描述:typeDBResponsestruct{Rowsint`json:"rows"`Errorstring`json:"error"`Valuejson.RawMessage`json:"value"`}typeUserstruct{Idint`json:"id"`Namestring`json:"name"`}funcloadDBRows(p[]interface{}){varresponseDBR

go - 类型转换接口(interface) slice

我很好奇为什么Go不将[]T隐式转换为[]interface{}而它会隐式转换T到接口(interface){}。我缺少关于此转换的重要信息吗?例子:funcfoo([]interface{}){/*dosomething*/}funcmain(){vara[]string=[]string{"hello","world"}foo(a)}gobuild提示cannotusea(type[]string)astype[]interface{}infunctionargument如果我尝试明确地这样做,同样的事情:b:=[]interface{}(a)提示cannotconverta(ty