草庐IT

file_contents_as_string

全部标签

go - 传播时 "Cannot use variable of type []struct as []interface"

这个问题在这里已经有了答案:sliceofstruct!=sliceofinterfaceitimplements?(6个答案)关闭8个月前。原型(prototype)函数functest(i...interface{}){//Codehere}预期用途typefoostruct{//Fields}foos:=[]foo{//foo1,foo2...}test(foos...)//ERRORtest(foos[1],foos[2],...)//OK错误cannotusefoos(variableoftype[]foos)as[]interface{}valueinargumenttot

string - GoLang的字符串映射键有字符串长度限制吗?

Go的字符串映射键是否有最大长度?其实我用https://github.com/OneOfOne/cmap而不是Go的map。问题是,我在cmap中使用的key长度约为200-4000个字符,这会是一个问题/问题吗?import"github.com/kokizzu/gotro/I"import"sync/atomic"varCACHE_IDXint64varCACHE_KEYScmap.CMapfuncinit(){CACHE_KEYS=cmap.New()}//changeareallylongstringtoashorteronefuncRamKey_ByQuery(querys

string - 如何使用 go 在 rune 中找到偏移索引字符串

如何使用go在[]rune中找到一个字符串的偏移索引?我可以用字符串类型完成这项工作。ifi:=strings.Index(input[offset:],"}}");i>0{打印(i);}但我需要rune。我有一个rune,想要获取偏移索引。如何使用go中的rune类型来完成这项工作?更多理解需求的例子:intoffset=0//meanstartfrom0(thisisimportantforme)stringtext="123456783}}56"ifi:=strings.Index(text[offset:],"}}");i>0{print(i);}这个例子的输出是:9但我想用[

unit-testing - 单元测试 os.File.Write 调用

我想对调用os.File.Write()的函数进行单元测试,并希望达到100%的覆盖率。此函数返回n和一个错误。引发错误很容易。我只需要关闭文件。我怎样才能不引起写入错误和写入数据长度的值n不同?看起来我应该创建一个虚拟的os.File,我可以在上面控制返回的错误。不幸的是,os.File不是一个接口(interface)。编辑:根据PeterOS的回答,仔细检查文档后,Write()方法,是否为io.Writer或io.File如果err为nil,将始终返回写入的slice的长度。结果,看来我的问题毫无意义。我学到了一些重要的东西,谢谢。我有一些代码要清理。附带说明一下,我对100%

go - 如何将不同的值从 map[string]interface{} 转换为类型字符串

我在interface{}中有一个具有不同类型的映射,我需要将它们全部转换为字符串类型。类型断言是不够的。packagemainfuncmain(){map1:=map[string]interface{}{"str1":"stringone","int1":123,"float1":0.123}varslc[]stringfor_,j:=rangemap1{slc=append(slc,j.(string))//panic:interfaceconversion:interface{}isint,notstring}} 最佳答案

string - Slice 不会在长度上出现 panic ,但在获取索引等于长度的值时会出现 panic

我有一个string,当我想获取i索引处的值时它会崩溃,但是当我切出相同的string保持较低的索引值作为长度然后它不会panic。想知道1和2有何不同?funcmain(){str:="a"fmt.Println(str[1])//1thispanicsfmt.Println(str[1:])//2thisdoesn't} 最佳答案 TLDR;在索引表达式中,索引必须小于长度,而在slice表达式中,长度是有效索引。在indexexpression中索引必须在范围内,否则它会崩溃。如果0,索引在范围内.引用规范:Intheinde

Go结构标签抛出错误: "field tag must be a string"

我是第一次使用GO,正在设置一个小示例API。在尝试从我创建的结构返回JSON对象时,当我将结构标记添加到我的字段时出现此错误:“字段标签必须是字符串”和“无效字符字面量(超过一个字符)”。这是我的代码分解。我在这里缺少什么?packagemainimport("encoding/json""fmt""log""net/http""github.com/gorilla/mux")funcmain(){router:=mux.NewRouter()router.HandleFunc("/demo/v1/version",getVersion).Methods("GET")log.Fata

file - Golang 检查文件扩展名不起作用

我想从控制台获取文件路径并检查该文件是否为虚拟机文件。我写了这段代码:funcmain(){reader:=bufio.NewReader(os.Stdin)fmt.Println("Enterthepathofthevmfile:")path,_:=reader.ReadString('\n')iffilepath.Ext(path)!=".vm"{fmt.Println("Error!filemustbevmfile")}但它不起作用。我刚开始学习Go,所以如果这是一个基本错误,请接受我的歉意。 最佳答案 检查文件扩展名:pat

go - "go run file.go"命令后可执行文件存储在哪里?

go编译器执行完如下命令后的可执行文件存放在哪里?$>gorunfile.go 最佳答案 在/tmp文件夹中,如果您使用的是unix机器。如果您使用的是Windows,则在\Users\SomeUser\AppData\Local\Temp\中。 关于go-"gorunfile.go"命令后可执行文件存储在哪里?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/46570517/

string - 无法在 golang 中使用 "\n"正确拆分字符串

我试图将free命令的输出分成3行。free的一般输出是可用的免费共享buff/缓存总数内存:163092361112988486030053430043190524306208交换:2097151623423620737280但是当我使用golang的strings.Split()时,Split函数现在按预期运行。我尝试调试它但找不到任何东西。请帮忙。packagemainimport"os/exec"import"github.com/golang/glog"import"fmt"import"strings"import"errors"functhisWorks(){str_ou