草庐IT

slice_size

全部标签

arrays - 如何将一个小 slice 复制到一个大 slice 的末尾

我正在寻找JavaSystem.arraycopy()的等效项假设我有2个slicesmall:=make([]byte,4)big:=make([]byte,10)我想将small的内容复制到位置6的big(small的字节是的最后一个字节code>大我找到的唯一方法是编写一个循环。 最佳答案 使用内置copy功能:copy(big[6:],small) 关于arrays-如何将一个小slice复制到一个大slice的末尾,我们在StackOverflow上找到一个类似的问题:

arrays - 从两个数组/slice 中获取交集和排除项的最有效方法是什么?

给定两个数组或slice,例如:a:=[]int{1,2,3,4,5}b:=[]int{3,4,5,6,7,8,9}slice可能未排序,顺序无关紧要。计算值的最有效方法是什么,这样您最终得到两个slice的公共(public)元素,并且剩余元素存在于一个slice中但不存在于另一个slice中,即对于上面给出的两个数组,返回值将是:common:=[]int{3,4,5}inAButNotB:=[]int{1,2}inBButNotA:=[]int{6,7,8,9}计算交集很容易,只需将一个slice转换为map,然后遍历该slice以查看值是否存在。有没有办法在同一个循环中计算其他

go - 这段代码什么时候涵盖了 slice 元素?

我在追加之前记录了每个元素。但结果看起来有些元素被覆盖了。不知道什么时候覆盖。packagemainimport"fmt"funcmain(){graph:=[][]int{[]int{3,1},[]int{4,6,7,2,5},[]int{4,6,3},[]int{6,4},[]int{7,6,5},[]int{6},[]int{7},[]int{},}fmt.Println(allPathsSourceTarget(graph))}funcallPathsSourceTarget(graph[][]int)[][]int{n:=len(graph)-1result:=make([]

go - slice 方法

虽然我认为标题中没有正确描述我遇到的问题,但这是我现在能够描述的唯一方式。我有一个结构Mini,它是在另一个文件中定义的。一组Minis应该被描述为一片。因为我想在将Mini结构附加到slice时更改它的某些字段,所以需要用于附加的自定义函数。到目前为止,我得到了以下代码:import("fmt""reflect")//MinisisasliceofallMinistypeMinisstruct{AllMinis[]*Mini}//AppendaddsanewMinitotheMinisslicefunc(m*Minis)Append(n*Mini){m.AllMinis=append

go - 如何通过 reflect.Append 将 nil 附加到动态类型 slice

当附加nil的reflect.Value时,下面的代码将引发运行时错误:packagemainimport("fmt""reflect")funcmain(){varlist[]interface{}v:=reflect.ValueOf(list)v=reflect.Append(v,reflect.ValueOf(1))//[1]v=reflect.Append(v,reflect.ValueOf("1"))//[1,1]v=reflect.Append(v,reflect.ValueOf(nil))//runtimeerrorfmt.Println(v)}所以为什么会出现运行时错误

loops - 从 Golang 中的 slice 中删除

我有以下测试打印原始输入slice(过滤后),没有已删除的元素,但在末尾有一个额外的元素使输入slice具有相同的长度,即使在过滤之后它应该更短。我已经阅读了这个文档https://github.com/golang/go/wiki/SliceTricks#delete然而,我认为我遗漏了一些关于Go的陷阱,因为我似乎以错误的方式使用slice。如何避免出现“输出slice”?(以正确的方式打印,包含正确的元素,具有预期的长度和容量)为什么我尝试“就地删除”导致“输入slice”的长度与过滤过程之前的长度相同?为什么“输入slice”的长度与我应用过滤过程之前的长度相同?如何进行删除操

go - 我可以根据条件向创建语句中的 slice 添加项目吗?

我有创建这样一个slice的函数:funcbuildOptions(cfg*ServerConfig)[]SomeType{return[]SomeType{Option1,Option2,Option3,}}仅当满足特定条件时,我才需要将Option3添加到slice中。是否可以在同一语句中使用某种立即数if来完成?我是否必须做这样的事情:funcbuildOptions(cfg*ServerConfig)[]SomeType{options:=[]SomeType{Option1,Option2,}ifaddOption3==true{options=append(options,

json - 从 golang 中的 json 文件中读取 slice

如何从golang中的json文件中读取slice?例如,文件data.json如下所示:["a","b","c","d"]我曾尝试使用ioutil.ReadFile来执行此操作,但这会返回一个字符串,而不是一个slice。如何阅读我的slice?注意:您可以将方括号[]换成大括号{}我已经使用结构完成了此操作,但我不希望用户必须输入这种复杂的json内容 最佳答案 例如,packagemainimport("encoding/json""fmt""io/ioutil")funcmain(){data,err:=ioutil.Rea

go - 使用指向 slice 的指针 slice

我正在尝试使用以下代码在另一个函数中修改slice:typeDTstruct{namestringnumberint}funcslicer(a*[]DT){tmp:=*avarb[]DTb=append(b,tmp[:1],tmp[2:])*a=b}funcmain(){o1:=DT{name:"name-1",number:1,}o2:=DT{name:"name-2",number:2,}o3:=DT{name:"name-3",number:3,}b:=make([]DT,0)b=append(b,o1)b=append(b,o2)b=append(b,o3)slicer(&b)

arrays - 为什么 Go slice 不能像数组用作键一样用作 Go 映射中的键?

为什么Goslice(它是Go数组的一种实现)不能像数组用作键一样用作Go映射中的键? 最佳答案 这是NigelTao来自https://groups.google.com/forum/#!topic/golang-nuts/zYlx6sR4F8Y的回答:Onereasonisthatarraysarevaluetypes.Ifa0isan[N]int(anarray)thendoinga1:=a0a1[0]=0willnotaffecta0[0]atall.Incomparison,slicesrefertoanunderlyin