草庐IT

each_slice_with_index

全部标签

pointers - 修复数组替换中引用不正确的 slice

以下go代码无法编译,因为(我相信)指针的引用方式存在错误。特别是,错误信息是prog.go:13:cannotuseappend((*x)[:remove],(*x)[remove+1:]...)(type[]int)astype*[]intinassignment这是导致此错误消息的代码的抽象和简化版本。packagemainimport"fmt"funcmain(){x:=&[]int{11,22,33,44,55,66,77,88,99}fori,addr:=range*x{ifaddr==22{forlen(*x)>5{remove:=(i+1)%len(*x)x=appen

go - 如何在方法中修改类型 slice ?

如何在方法内部修改类型slice?我试过http://play.golang.org/p/ul2n8mk6yetypeTest[]stringfunc(testTest)Add(strstring){test=append(test,str)}funcmain(){test:=Test{}test.Add("value")fmt.Println(len(test))//0}和http://play.golang.org/p/nV9IO7E5sptypeTest[]stringfunc(test*Test)Add(strstring){v:=append(*test,str)test=&

go - 在 goroutine channel 改变 slice 后,如何获取 slice 新索引?

我想知道如何在slice中获取元素新索引,我有一个函数可以从数据库中获取应用程序,并查询某些应用程序(用于过滤),但是当我查询并获得一些应用程序时,我不需要,我正在尝试将它们从slice中删除,以便只有需要的才能进入View。它正在工作,但我在goroutine中的索引是旧索引时遇到问题,所以当它尝试从slice中删除元素时它会panic:无论如何这是我的代码://ListApplicationswilllisttheapplicationsfuncListApplications(whttp.ResponseWriter,r*http.Request){session:=common

arrays - Golang append 到一个类型的 slice

我正在执行一个ldap查询,我想将结果填充到一个slice中。结果看起来像objectClass[toppersonorganizationalPersonuser]cn[user.1]sn[one]description[user.1]givenName[user]distinguishedName[CN=user.1,OU=random,DC=example,DC=com]...我正在尝试将其填充到map中,为此我创建了一个类型。typekeyvaluemap[string]interface{}现在我想创建一个这种类型的slice,以便多个用户的数据看起来像这样objectCla

go - 在 go routine 中追加 slice

我正在尝试自学围棋。我写了一个简单的客户端/服务器应用程序,它有一些加密和非常简单的数据包结构。我有一个go例程用于监听然后将数据发送到每个连接的客户端。在我向每个客户端发送数据的函数中,我将一条消息附加到header,但它做了一些奇怪的行为。funcClientSender(client*Client){for{input:=“输入”的值发生了变化,我不知道为什么。这是上面代码的输出:INFO:2016/02/2210:47:38RAWSENDER:0dae0000000056cb57ca416e6f6e796d6f757300000000000000000000000aINFO:2

arrays - 传递 slice 而不是指针

我在读一本书时偶然发现了有关传递参数的主题。书上说将数组的一部分传递给函数需要24个字节。并且它声明最好传递slice,因为不会复制底层数组。但是传递一个指针不是只需要8个字节吗?书:行动起来开销是否如此之小以至于传递slice是可行的方法?与传递指针相比 最佳答案 复制任何小于缓存行(在大多数常见CPU上通常为128字节)的内容基本上需要相同的时间,因此8字节和24字节之间没有真正的区别。通常更多的时间花在取消引用指针上而不是复制任何东西上小的。由于通过指针操作数组的默认方法是在slice中,因此使用slice而不是指向数组的指针

json - Golang & mgo : How to create a generic entity with common fields like _id, 创建时间,最后更新

给定以下结构:packagemodelsimport("time""gopkg.in/mgo.v2/bson")typeUserstruct{Idbson.ObjectId`json:"id"bson:"_id"`Namestring`json:"name"bson:"name"`BirthDatetime.Time`json:"birth_date"bson:"birth_date"`InsertedAttime.Time`json:"inserted_at"bson:"inserted_at"`LastUpdatetime.Time`json:"last_update"bson:"

go - 在两个单独的 goroutine 中比较两个 slice 并使用 sync.Waitgroup 时挂起 goroutines

我正在学习goroutines,并且在两个goroutines中将两个slice相互比较,这是在无限循环中永远比较它,这可能不是最好的例子,我无法弄清楚为什么挂了。for;;{varwgsync.WaitGroupwg.Add(2)goFindinFirst(&Arr1,&Arr2,AddChan,&wg)goFindinSecond(&Arr2,&Arr1,DelChan,&wg)counter:=0for;;{select{caseAdd,ok:=FindinFirst函数是funcFindinFirst(Arr1,Arr2*[]string,AddChanchanstring,w

戈朗 :command line argument with -> charecter

我需要接受命令行参数来运行以下格式的Go程序:gorunapp.go1->A我正在使用os.Args[1]。但它只接受直到'1-'。'>A'被跳过。非常感谢解决此问题的任何帮助。谢谢 最佳答案 您的shell将>解释为IOredirection.shell打开文件A作为命令的标准输出,并将参数1-传递给命令。引用参数来避免这种情况:gorunapp.go"1->A" 关于戈朗:commandlineargumentwith->charecter,我们在StackOverflow上找到一个

go - 在 go 中迭代 2D slice

我正在参加“围棋之旅”,并且有一个关于Exercise:Slicesexample的问题.目前,我可以通过使用[]运算符遍历每个索引来创建图片,就像在C中一样。funcPic(dx,dyint)[][]uint8{pic:=make([][]uint8,dy)fori:=rangepic{pic[i]=make([]uint8,dx)forj:=rangepic[i]{pic[i][j]=uint8(1)}}returnpic}但是,当我尝试执行如下所示的操作时,出现了panic:runtimeerror:indexoutofrange错误。我尝试添加print语句并调用Pic(3,3