草庐IT

slice_size

全部标签

go - 如何从 slice 中删除项目的重复项?

我正在编写一个命令行工具,用于从文本文件中删除对等节点。这是文本文件。它在代码中的引用是cfg.Bootstrap"Bootstrap":[{"Address":"/ip4/162.243.139.64/tcp/5001","PeerID":"QmXZPT1SLcczjNSLnSCsQBWwbosKjrDRo122Ys8ajKoQXQ"},{"Address":"/ip4/162.243.139.64/tcp/5001","PeerID":"QmXZPT1SLcczjNSLnSCsQBWwbosKjrDRo122Ys8ajKoQXA"},{"Address":"/ip4/162.243

arrays - 在 Go 中附加 2 维 slice

我的Go程序中有几个二维slice,我想将它们连接在一起。但是,append()不采用这种类型。不能使用myArray(type[][]string)作为append中的type[]string如何以惯用的方式使用Go附加多维slice? 最佳答案 使用...将第二个slice作为variadic传递要追加的参数。例如:a:=[][]string{{"a","b"},{"c","d"}}b:=[][]string{{"1","2"},{"3","4"}}a=append(a,b...)playgroundexample

go - golang推荐中的 slice 合并

有没有办法让这个golang代码更短?funcMergeSlices(s1[]float32,s2[]int32)[]int{varslice[]intfori:=ranges1{slice=append(slice,int(s1[i]))}fori:=ranges2{slice=append(slice,int(s2[i]))}returnslice} 最佳答案 您无法消除将每个元素单独转换为int的循环,因为您无法转换不同元素类型的整个slice。有关解释,请参阅此问题:Typeconvertingslicesofinterfa

string - 从 Go 中的 slice 中删除字符串

这个问题在这里已经有了答案:Deleteelementinaslice(7个答案)关闭6年前。我有一段字符串,我想删除一个特定的字符串。strings:=[]stringstrings=append(strings,"one")strings=append(strings,"two")strings=append(strings,"three")现在如何从strings中删除字符串"two"?

go - 从反射类型创建 slice

我正在尝试从reflect.Type创建slice。这是我目前所拥有的。packagemainimport("fmt""reflect")typeTestStructstruct{TestStrstring}funcmain(){elemType:=reflect.TypeOf(TestStruct{})elemSlice:=reflect.New(reflect.SliceOf(elemType)).Interface()elemSlice=append(elemSlice,TestStruct{"Testing"})fmt.Printf("%+v\n",elemSlice)}但是我

go - 声明后如何给空 slice 赋值

我正在尝试为空slice分配一个值,如下所示。funcmain(){vars[]intfmt.Println(s,len(s),cap(s))s[0]=99}然后抛出一个异常,panic:runtimeerror:indexoutofrange注意:我知道一种方法是在声明部分初始化值,如下所示。但在上面的示例中,我试图在声明之后分配一个值。vars[]int{99}有什么办法可以实现吗? 最佳答案 不能只分配给空slice。您的print语句显示slice的长度和容量为0。在[0]处建立索引绝对是越界的。你有(至少)三个选择:附加到

go - 将 slice 附加到函数参数的 slice

我想知道slice是如何工作的。看下面的代码packagemainimport"fmt"typeByteSlice[]bytefunc(p*ByteSlice)Append(data[]byte){slice:=*p*p=append(slice,data...)}funcmain(){varaByteSlicea[0]=3b:=[]byte{4,6,7}a.Append(b)fmt.Println(b)}正如您在追加函数中所见,我尝试将slice参数追加到调用中,但出现以下错误:panic:runtimeerror:indexoutofrangegoroutine16[running

go - 拆分后如何从 slice 中修剪 Go 中的空格

我有一个逗号分隔的字符串,所以它可能是test1,test2,test3或test1,test2,test3或test1,test2,test3。我目前在Go中使用strings.Split(s,",")拆分它,但现在我有一个[]string可以包含任意元素空格数。如何轻松剪掉它们?这里的最佳做法是什么?这是我当前的代码varproperty=os.Getenv(env.templateDirectories)ifproperty!=""{vardirs=strings.Split(property,",")forindex,ele:=rangedirs{dirs[index]=str

go - 使用 Golang 将两个相似数据 slice 合并为 JSON

我们有一个具有两个端点的服务,可以访问多个API,处理数据并将其作为json发送回。它们在相同的对象上提供数据,但它们做的事情却截然不同。唯一的公共(public)属性是uid。他们共享一个模型,看起来像这样:typeItemstruct{Uidstring`json:"uid"`Val1string`json:"param1,omitempty"`Val2[]NestedVal`json:"param2,omitempty"`Val5int`json:"param5,omitempty"`Val6string`json:"param6,omitempty"`Val7string`js

optimization - 分配未初始化的 slice

有没有办法分配一个未初始化的slice在围棋?一个常见的模式是创建一个给定大小的slice作为缓冲区,然后只使用它的一部分来receive数据。例如:b:=make([]byte,0x20000)//biszeroinitializedn,err:=conn.Read(b)//dostuffwithb[:n].allofbiszeroedfornoreason当分配大量缓冲区时,此初始化会累加,如spec声明它将在分配时默认初始化数组。 最佳答案 您可以从bufs.Cache.Get获取非归零字节缓冲区(或查看并发安全版本的CCac