草庐IT

string_slice

全部标签

go - 无法将实现 Foo 接口(interface)的结构 slice 传递给需要 []Foo 的函数

我正在尝试使用Go中的接口(interface),但我似乎无法将实现某个接口(interface)的结构片段传递给需要接口(interface)片段的函数。它适用于只接受单个对象的函数,但不适用于需要接口(interface)slice的函数。使用下面的代码我得到以下错误:./main.go:27:cannotusefooBar(type[]*FooBar)astype[]FooinargumenttoFooBarBar代码如下:packagemainimport"fmt"typeFoointerface{Bar()bool}typeFooBarstruct{abool}func(f*

json - map[string] struct inside struct

我有一个如下所示的JSON文件:{"jailbreaks":[{"jailbroken":false,"name":"","version":"","url":"","anleitung":[],"ios":{"start":"10.2.1"},"caveats":"","platforms":[]},{"jailbroken":true,"name":"Yalu102","version":"beta6","url":"https://domain-dl.tld","anleitung":[{"blog":"title","link":"http://domain.tld/"},{"

JSON 写入创世 block 失败 : invalid character '\\' looking for beginning of object key string

我正在尝试构建genesis,但在构建过程中遇到了很多错误。在同一目录的终端上输入gethinitgenesis.json后,我得到了这个:Caros-MacBook-Pro:testcmycaro$gethinitgenesis.jsonI022318:52:32.817358ethdb/database.go:83]Allotted128MBcacheand1024filehandlesto/Users/caro/Library/Ethereum/geth/chaindataI022318:52:32.976868ethdb/database.go:176]closeddb:/Us

string - GOLANG 64decode字符串非法数据,不知道为什么

各位地鼠:我被困在一些简单的事情上。我正在尝试转换解码64endoded字符串(准确地说是OAUTHtoken)。我拆分字符串,并将拆分的一部分进行64位解码,但我总是发现非法字符。当我将相同的值放入任何基于Web的64位解码器时,它就起作用了。我认为可能有一个尾随的null或其他东西。谁能给我一些建议。我把代码放在这里:https://play.golang.org/p/cf-x6GgpEp确切的错误是:输入字节408处的非法base64数据下面也是代码,很短:packagemainimport("fmt""strings"b64"encoding/base64")funcmain(

go - 在函数中传递接口(interface) slice 并解码到它的项目中

我可以将一片结构传递给函数,转换为[]interface{},填充它并在函数结束后使用吗?这是问题的完整示例https://play.golang.org/p/iPijsawEEg简短描述:typeDBResponsestruct{Rowsint`json:"rows"`Errorstring`json:"error"`Valuejson.RawMessage`json:"value"`}typeUserstruct{Idint`json:"id"`Namestring`json:"name"`}funcloadDBRows(p[]interface{}){varresponseDBR

string - 去我怎样才能有效地将字符串分成几部分

我正在与字符串拆分作斗争。我想用通配符将字符串拆分成一个slice,但这个slice也应该包含这个通配符。例如:/applications/{name}/tokens/{name}应该拆分为[/applications/{name}/tokens/{name}]等这是我写的一个示例代码,但它不能正常工作,我也不满意。https://play.golang.org/p/VMOsJeaI4l有一些示例路由需要测试。方法splitPath将路径拆分为多个部分并同时显示:之前和之后。 最佳答案 解决方法:varvalidPathRe=reg

go - 类型转换接口(interface) slice

我很好奇为什么Go不将[]T隐式转换为[]interface{}而它会隐式转换T到接口(interface){}。我缺少关于此转换的重要信息吗?例子:funcfoo([]interface{}){/*dosomething*/}funcmain(){vara[]string=[]string{"hello","world"}foo(a)}gobuild提示cannotusea(type[]string)astype[]interface{}infunctionargument如果我尝试明确地这样做,同样的事情:b:=[]interface{}(a)提示cannotconverta(ty

go - 删除 slice 中的元素导致原始 slice 发生变化?

我只是展示代码,很简单,goplay:packagemainimport("fmt")funcmain(){a:=[]int{1,2,3,4,5,6}fori:=0;i在上面的代码中,我有一个slice,我想循环删除它的元素。我希望的输出是:2345613456123561234612345但是我得到了:[23456][24566][24666][24666][24666][24666]为什么?go的document说,如果slice的容量不够,它将为元素重新分配,我什至更改了原始slice中的任何内容...谁能解释一下这是怎么发生的? 最佳答案

Golang 反射(reflect)在 slice 中获取结构成员

我有以下结构:typeProductionInfostruct{StructA[]struct{Field1stringField2int}我将从ProductionInfo类型的StructA中提取字段名称和类型。但我不明白如何。谁能帮帮我? 最佳答案 使用反射包:f,_:=reflect.TypeOf(ProductionInfo{}).FieldByName("StructA")t:=f.Type.Elem()fori:=0;i 关于Golang反射(reflect)在slice中

file - 使用 buffo.read 读取文件时 Golang 动态调整 slice 大小

我有一个问题,我需要使用bufio.read逐行读取一个tsv文件,我需要记录我读取的每一行有多少字节。问题是,我似乎不能只初始化一个空slice并将其传递给bufio.read并期望该slice包含文件的整行。file,_:=os.Open("file.tsv")reader:=bufio.NewReader(file)b:=make([]byte,10)for{bytesRead,err:=reader.Read(b)fmt.Println(bytesRead,b)iferr!=nil{break}}因此,对于此示例,由于我将slice指定为10个字节,因此即使行大于10个字节,读