草庐IT

vec_list_iter_exp_out

全部标签

go - 一个slice只有一个元素,名字叫list,为什么subslice可以list[1 :] work?

一个slice只有一个元素,名字叫list,为什么subslicelist[1:]可以工作?例如:list:=[]int{1}fmt.Println(list[1:])fmt.Println(list[1])列表中没有索引为1的元素,所以第三行导致“panic:runtimeerror:indexoutofrange”,但为什么第二行运行良好? 最佳答案 好吧,语言只是定义这是有效的。将子slice中使用的索引视为指向元素“之间”的指针:SliceaElements:|0|1|2|3|4|5|Subslicea[2:]^======

list - 戈朗 : create a slice of strutcs

我想创建一个结构列表,函数可以按照go-github中的方式返回这些结构包。但是创建和填充这样一个列表的正确方法是什么?我找到了两种方法,例如,使用append():...allowedRepos:=strings.Fields("repo1,repo2")actualRepos:=[]Repos{}actualRepos=append(actualRepos,Repos{Name:"repo1",URL:"gth.com/repo1"})actualRepos=append(actualRepos,Repos{Name:"repo2",URL:"gth.com/repo2"})...

Go time.Parse() 得到 “month out of range” 错误

我是Go的新手,我正在解析一个nginx时间格式字符串。你可以在这里查看我的代码:packagemainimport( "time" "log" "fmt")funcmain(){ //nginxtimeformat nginx_time:="03/Apr/2017:08:29:05+0800" t,err:=time.Parse("02/Jan/2016:15:04:05MST",nginx_time) iferr!=nil{ log.Fatal(err) } fmt.Println(t.Format("2006-01-0215:04:05"))}我收到以下错误:GOROOT=/u

go - 我收到错误 fatal error : runtime: out of memory while downloading video using 'go-ipfs-api'

我使用go-ipfs-api从ipfs下载了一个大文件,web访问下载。我收到一个fatalerror:runtime:outofmemory.如何修改我的代码?funcmain(){http.HandleFunc("/",download)http.ListenAndServe(":8080",nil)}funcdownload(whttp.ResponseWriter,r*http.Request){client:=shell.NewShell("http://127.0.0.1:5001")fd,err:=client.Cat("QmTcj7SfRf4vnLnCqnxMT7kut

list - 如何在 Go 中打印列表的值

我在Go的列表中有一些值。我只需要能够打印它们,但每次尝试时它都会告诉我test.FirstName未定义(类型*list.Element没有字段或方法FirstName)。那么我如何适本地访问列表的成员呢?它的最后几行给我带来了麻烦。packagemainimport("bufio""fmt""log""strconv""strings""os""container/list")typeStudentstruct{FirstNamestringLastNamestringtestScoreinthomeworkScoreint}funcmain(){fmt.Println("What

arrays - 相当于 PHP 的 list() 的 go 是什么?

这个问题在这里已经有了答案:Unpackslicesonassignment?(3个答案)关闭6年前。在PHP中,我们有list(),它使我们能够在一个操作中为变量列表赋值。例如:list($a,$b)=['valueA','valueB'];echo$a;#valueAecho$b;#valueB是否可以在Go中做同样的事情?类似Regexp.FindStringSubmatch()的功能返回一个数组,因此最好将此值直接映射到其他变量。

go - 分配错误 : runtime: out of memory

我写了这段代码:packagemainimport("log")funcmain(){varc[]int64fori:=0;i此代码内存不足:fatalerror:运行时:内存不足。在每次迭代中,c都会被分配一个新的slice。所以上一个slice是不可达的。为什么GC似乎没有收集无法访问的内存? 最佳答案 每个c=make([]int64,10000000000都试图分配80GB(8*10,000,000,000字节)的内存。使用合理大小的分配(相对于实际内存的大小)和一切都按预期工作。例如,packagemainimport("

go - 在 Golang 中使用全局列表变量。接收 "Use of package list without selector"

我有一个名为rooms的全局链表。它将存储该用户输入的所有房间的名称。在我的函数创建中,我试图引用这个名为房间的列表。我在我的主要功能中实例化列表。当我尝试将项目添加到列表“房间”时,我收到错误“使用不带选择器的包列表”。我希望能够从我的创建函数中向我的名为房间的列表中添加一个字符串。packagemainimport("net""fmt""bufio""os""container/list")varroomslistfunccreate()string{reader:=bufio.NewReader(os.Stdin)fmt.Print("NametheChatroom");inpu

list - 在 go 中创建一个包含列表类型的结构

我创建了一个结构,这个结构中包含两个列表类型。当我尝试实例化我的结构时,我收到错误不能在字段值中使用list.New()(类型*list.List)作为类型list.List我正在使用golangplayground结构typemyStructstruct{namestringmessageslist.Listuserslist.ListlastUsedtime.Time}实例化结构varmyVar=myStruct{"hello",list.New(),list.New(),time.Now()} 最佳答案 list.New()返

go - 为什么在这种情况下 go 不报告 "slice bounds out of range"?

这个问题在这里已经有了答案:Whydoesgoallowslicingfromlen(slice)?(3个答案)关闭4年前。这里是重现的代码:packagemainimport"fmt"funcmain(){varv[]intv=append(v,1)v=append(v,v[1:]...)fmt.Println("hi",v)}v[1]会报indexoutofrange,而v[1:]...不会,为什么呢?