草庐IT

go-simplejson

全部标签

go - 惯用的 Golang - 可读性与运行时内存保护

鉴于这两个选项(如我所见,请随时启发我),例如,在检查两个字符串的相等性时,我想知道它是否是Goto中的首选/惯用:将两个字符串赋值给内存中的变量,例如:varthing01:=strings.ToLower(strings.Replace(line,"\"","",-1))[:lenEval]varthing02:=strings.Join(p.FieldsOrder[:p.CheckNHeaders],string(p.Delimiter))ifthing01==thing02{//dostuff...}或ifstrings.ToLower(strings.Replace(line

macos - 无法在 mac os 上使用 Go 命令行

我想使用命令goget,但它抛出异常但我已经安装了命令行工具。系统:macOssierra10.12.6Go:1.9.2编辑:错误信息:gogetgithub.com/hashicorp/go-plugin#cd.;gitclonehttps://github.com/hashicorp/go-plugin/Users/famoss/files/goworkspace/src/github.com/hashicorp/go-pluginxcrun:error:activedeveloperpath("/Applications/Xcode.app/Contents/Developer"

go - 无法设置结构的属性

这个问题在这里已经有了答案:Howtosetandgetfieldsinstruct'smethod(3个答案)关闭5年前。我正在尝试学习如何在go中使用结构。我有以下包裹//src/db/db.gopackagedbtypeDBstruct{pkstring}func(dbDB)SetPk(sstring){db.pk=s}func(dbDB)GetPk()string{returndb.pk}这是我的main.gopackagemainimport("log""db")funcmain(){d:=db.DB{}d.SetPk("HelloWorld")log.Println(d.G

testing - 如何测试go中函数的返回值是指向类型的指针?

我在测试用例中突出显示了我希望某些东西应该去的地方。理想情况下,我想测试i是WHAT_SHOULD_I_PUT_HERE的一个实例主.gopackagemainimport"fmt"typeSomeTypestruct{thingThatNeedsSetupstruct{}}funcCreate()*SomeType{return&SomeType{}}funcmain(){a:=Create()fmt.Println(a.thingThatNeedsSetup)}main_test.gopackagemainimport("testing")funcTestCreate(t*test

go - golang 数学/大库中的奇怪语法

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion我正在使用golang中的math/big库对位串执行操作。一切正常,但我很困惑为什么对于这个库的大部分函数,​​语法是:varnum1big.Intvarnum2big.Intvarresultbig.Int//Setnum1andnum2result.And(&num1,&num2)代替:varnum1big.Intvarnum2big.Int//Setnum1andnum2resul

go - 为什么 Go 认为这个结构不遵守这个接口(interface)?

假设我设置了两个Go接口(interface)并按如下方式实现它们:typefooInterfaceinterface{buildBar()barInterface}typebarInterfaceinterface{stuff()}typefooStructstruct{}typebarStructstruct{}func(*fooStruct)buildBar()*barStruct{return&barStruct{}}func(*barStruct)stuff(){}当我尝试将fooStruct分配给fooInterface变量时,我收到以下错误:cannotusefooStr

go - slice 中指针的行为

从slice创建slice的行为是什么?当您像这样定义slice时:s:=[]int{2,3,5,7,11,13}你想像这样修改你的slice:s=s[:3]//s=[235]s=s[:cap(s)]//s=[23571113]它实际上可以“正确扩展”您的slice。哪个不起作用:s=s[2:]//s=[571113]s=[:cap(s)]//s=[571113]因此,在这种情况下,当您创建新slice时,您无法“保留”前两个元素。即使底层数组没有改变,你也不能改变指向该数组开头的指针,对吗?这是为什么? 最佳答案 正如@JimB在

go - 如何解码 PEM 编码的 PKIX 公钥?

Go的officialdocumentation中给出的例子x509.ParsePKIXPublicKey遇到运行时错误,因为pem.Decode()返回的Block是nil。(Playgroundexample)但是,officialdocumentation中的示例pem.Decode()运行得很好。(Playgroundexample)我发现这两个示例之间的唯一区别是公钥的初始化方式以及它们在pem.Decode()中的使用方式。第一个例子:constpubPEM=`-----BEGINPUBLICKEY-----...-----ENDPUBLICKEY-----`block,_

go - Golang 中的大文件

我正在处理一个包含数百万个非常小的文件的应用程序,这变得很痛苦。很难转移。所以,我想到了大文件或其他虚拟文件系统,它们可以创建一个大文件,包含我所有的索引数据。在golang中如何处理这个问题?你有什么库可以推荐吗? 最佳答案 也许一个简单的ZIP存档(假设为零压缩)适合您?它有一个内容(文件流)的自然索引,所以当你openitusingarchive/zip,你回来asliceof"fileinfoblocks",每个都“知道”如何定位和读取其相应的文件流。(甚至有一种方法可以获取文件数据的偏移量,并读取它直接——绕过空操作“解压

go - 如何仅将函数的返回值分配给 golang 中的结构字段?

这个问题在这里已经有了答案:Multiplevaluesinsingle-valuecontext(6个答案)关闭4年前。假设我们有这样一个结构:typeDatastruct{aint}而我们想要获取一个返回多个值的函数的单个返回值,并将其赋值给一个Data对象,例如data:=Data{a:strconv.Atoi("1000")}上面的代码不起作用,因为Atoi返回两个值,一个数字和一个错误,所以我们需要以某种方式处理额外的值(错误),但在我的例子中,我不需要评估错误值,它是无法使用_关键字关闭它。在初始化一个结构体时,我想去掉错误的返回值,我该如何实现