草庐IT

string_slice

全部标签

inheritance - 具有混合结构类型的 Go 映射和 slice

我正在尝试通过创建一个能够创建投影的简单事件存储来学习如何使用Go。我被困在如何使用包含混合类型结构的slice和映射上。这样做的要点是,我希望开发人员根据需要在各个字段中创建尽可能多的实现IEntity和IEvent的结构。我来自JavaScript/Node.js背景,具有一些C/C++/Java的基本知识,我可能在这里寻找类/继承模式并需要一些帮助来了解如何在Go中获得相同的功能.packagemainimport("sync""time"uuid"github.com/satori/go.uuid")//IEntitydescribesanentity,astructthati

arrays - Go slice 包含对数组子部分或单个元素的引用?

Golangblogaboutslicesandarraysthinkofasliceasalittledatastructurewithtwoelements:alengthandapointertoanelementofanarray.有点被冗长的说法弄糊涂了:“...指向数组元素的指针。”只有当它是len()为1的slice时才会出现这种情况,对吧?我相信这篇博文可能是想说它是一个指向数组“子部分”的指针,对吧? 最佳答案 是的,指向后备数组中第一个slice元素的指针。我敢打赌这个措辞来自Go语言C背景:)

arrays - 为什么 Go 的 strings.Fields(str) 和 strings.Split(str, "") 这么慢?

我一直在测试Node和Go中的函数以比较它们的性能。几乎在每个测试中,Go都比Node快得多,除了使用strings.Fields()或strings.Split()时,Node是Node的2-3倍快。开始(2.14秒):start:=time.Now()varnewWords[]stringstr:="asdasjhfalsjdhalsdjhfadhfaldhfaljdhfaldhfasjdhfalsdhasdalsdhalksdhalksdhalksdalkjsdfadlkjdalkjdhasdhfefafad6a5a85dfas5da5dada6sd58ad5a8sd5f8as5

go - 如何在golang中调用接受接口(interface) slice 作为参数的方法?

这个问题在这里已经有了答案:sliceofstruct!=sliceofinterfaceitimplements?(6个答案)关闭5年前。我想在golang中调用一个接受接口(interface)slice作为参数的方法,但我发现我不能像这样传递它:typeBaseinterface{Run()}typeAstruct{namestring}func(a*A)Run(){fmt.Printf("%sisrunning\n",a.name)}funcfoo1(bBase){b.Run()}funcfoo2(s[]Base){for_,b:=ranges{b.Run()}}funcTes

string - 二进制字符串转unicode

我不是100%确定为什么我的unicode二进制字符串不起作用..任何人都可以指出问题或帮助我修补它吗?另外,我将二进制文件分块的原因是它对于ParseInt来说太大而无法处理。有关示例,请参见下面的playground链接。funcbinToString(s[]byte)string{varcounterintchunk:=make([]byte,7)varbufbytes.Bufferfori:=ranges{ifi%8==0{counter=0ifi,err:=strconv.ParseInt(string(chunk),2,64);err==nil{buf.WriteStrin

go - HTML 文件中的循环 slice 值

我创建了结构slice和slice数组。typeblogsstruct{idinttitlestringfeatured_imagestringcreated_atstring}并在“xyz”函数中创建变量:blog:=blogs{}blogData:=[]blogs{}值为:rows,err:=db.Query("SELECTid,title,featured_image,created_atfromblogsorderbycreated_atdesclimit0,6")iferr!=nil{ctx.Application().Logger().Fatalf("MySQLErrorf

string - 将字符串作为字符数组访问以在 strings.Join() 方法中使用 : GO language

我正在尝试以字符数组或rune形式访问字符串,并使用一些分隔符进行连接。什么是正确的做法。这是我尝试过的两种方法,但出现如下错误cannotuse([]rune)(t)[i](typerune)astype[]stringinargumenttostrings.Join一个字符串在GOLANG中是如何表示的。是不是有点像字符数组?packagemainimport("fmt""strings")funcmain(){vart="hello"s:=""fori,rune:=ranget{s+=strings.Join(rune,"\n")}fmt.Println(s)}packagema

string - slice 起始位置大于字符串的长度

任何人都知道为什么下面的代码运行时没有panic,它在字符串的长度上访问索引1。import("fmt")funcmain(){fmt.Println("hi"[2:])} 最佳答案 它不会“超出”长度,2恰好是长度(等于它)。Forarraysorstrings,theindicesareinrangeif0,otherwisetheyareoutofrange.由于您要对string进行slice,索引在范围内,如果:0这个表达式:"hi"[2:]由于缺少上限,它默认为长度,即2,因此它等同于:"hi"[2:2]这完全符合规范,

go - 从 Slice 嵌套函数

我正在构建一个Go网络应用程序,它在处理路由时支持各种中间件功能。我尽可能地坚持使用net/http,并且想知道如何在不使用像negroni这样的中间件库的情况下实现这一目标。基本上我想做的是能够提供一部分中间件功能,比如一个用于日志记录,一个用于检查有效的JWT,最后是处理请求的处理程序。我可以很简单地通过定义以下结构来使用negroni做到这一点://Route..typeRoutestruct{MethodstringPathstringMiddleware[]negroni.HandlerHandlerhttp.HandlerFunc}然后像这样定义一个路由:varcommon

go - 使用反射附加到 slice

我想仅使用反射附加到slice。但我不知道如何用新slice“替换”a的值。funcmain(){fmt.Println("Hello,playground")a:=[]string{"a","b","c"}values:=[]string{"d","e"}v:=reflect.ValueOf(a)fmt.Printf("%t\n\n",v.Type())fmt.Printf("%t\n\n",v.Type().Elem().Kind())for_,val:=rangevalues{v.Set(reflect.Append(v,reflect.ValueOf(val)))}fmt.Pr