草庐IT

go - 无法将 yaml 文件解码为结构

我正在尝试将UnmarshalS放入DataCollectionFromYAML----labels:cats,cute,funnyname:"funnycats"url:"http://glorf.com/videos/asfds.com"-labels:cats,ugly,funnyname:"morecats"url:"http://glorf.com/videos/asdfds.com"-labels:dogs,cute,funnyname:"lotsofdogs"url:"http://glorf.com/videos/asasddfds.com"-name:"birddan

go - 通过 IANA 代码将 Windows 文本文件转换为 utf-8

我想使用chardet和golang.org/x/text将非utf-8文件转换为utf-8。但是,到目前为止我发现的所有代码示例都要求用户对所需的转换方向进行硬编码。例如:packagemainimport("fmt""io/ioutil""os""golang.org/x/text/encoding/charmap")funcmain(){//Writethestring//encodedtoWindows-1252encoder:=charmap.Windows1252.NewEncoder()s,e:=encoder.String("Thisissampletextwithru

go - 从 fmt.Printf 更改为 exec.Command

如何更改代码而不是显示它(fmt.Printf)以执行命令(exec.Command)现在我有这个://Printkeysfmt.Printf("%x%34s%34s\n",padded,uaddr.EncodeAddress(),caddr.EncodeAddress())如何给'g'和'h'赋值:v:="cmd"n:="/C"a:="testcmd"b:="-connect=127.0.0.1"c:="-port=3333"d:="-user=username"e:="-password=password"f:="importaddress"g:="AddressHere"h:="

go - 将 markdown 转换为 pdf - 不可读的字体

我使用https://github.com/mandolyte/mdtopdf转换makdownintpdf文件但是如果它们来自非拉丁字符,它会使字体不可读。例如来源:Ктонепонимаетвашегомолчания,едвалипойметвашислова.结果:КтонÐμпонимаÐμтвашÐμгомолчаниѕ,ÐμдвалипоймÐμтвашиѕлова.它有一个样式选项和所需的字体在项目文件夹中证明如何解决? 最佳答案

pointers - 类型将接口(interface)指针转换为接口(interface)指针

这个问题在这里已经有了答案:Whycan'tIgettheaddressofatypeconversioninGo?(1个回答)2年前关闭。我正在尝试将接口(interface)指针(*B)转换为其他接口(interface)指针(*A)。A是B的“父”所以B具有A的所有功能有。我在谷歌搜索并找到了“类型断言”,但在这种情况下我不能这样做。我试过了:f(b.(A))f(b.(*A))f((*b).(A))f(&(*b).(A))但唯一有效的是:tmp:=(*b).(A)f(&tmp)然而它复制b它没有优化。typeAinterface{foo()}typeBinterface{Abar

go - 如何在go中添加时区以秒为单位获取时间

我正在使用time.Timeingo。以秒为单位获取时间(自1970年1月1日以来经过的秒数)我正在使用now:=Time.now()loc,err:=time.LoadLocation(country.Timezone)//timezoneinAsia/Dhakanow=now.In(loc)然后,seconds:=now.Unix()但秒数给出的秒数不加时区秒数。它实际上给出了UTC的秒数。我的问题是,如何在增加6小时后获得秒数(亚洲/达卡时区为UTC+6)? 最佳答案 如果你想要当前时钟时间的第二部分只使用下面的代码:loc:

encoding - 从十进制转换为十六进制

我想将一个数字转换为十六进制并将结果存储在一个最大长度为4的[]byte中。这是我想出的,但感觉很迂回。packagemainimport("encoding/hex""fmt")funcmain(){hexstring:=fmt.Sprintf("%x",12345678)fmt.Println(hexstring)hexbytes,_:=hex.DecodeString(hexstring)for{iflen(hexbytes)>=4{break}hexbytes=append(hexbytes,0)}fmt.Println(hexbytes)}我认为必须有更好的方法来使用make

映射为匿名结构成员

我在go中遇到了一些我无法完全理解的行为,欢迎任何类型的解释:typeTeststruct{Namestring//orothermetadatatobestoredalongthecoremapelementmap[string]string}以上代码将无法编译并出现unexpectedmap错误。这可能是因为structFielddelarations必须是类型,但是我无法理解为什么map[string]string不是类型。将其更改为typeEmbeddedmap[string]stringtypeTeststruct{NamestringEmbedded}get解决了编译器错误

concurrency - 为什么并发写入的boolean值设置为false后还是true?

我正在用Go编写哲学家用餐解决方案。我的解决方案很简单:检查两个fork是否可用。如果是这样,请同时选择两者。如果不是,请保留两者。但是,我遇到了一个奇怪的并发错误,即使在明确设置为false之后,fork的可用性仍然是true。我的Fork声明如下:typeForkstruct{musync.Mutexavailbool}func(f*Fork)PickUp()bool{f.mu.Lock()iff.avail==false{f.mu.Unlock()returnfalse}f.avail=falsefmt.Println("setfalse")f.mu.Unlock()return

go - 为结构字段创建函数类型

我可以为结构的字段设置函数类型吗?我需要这样的东西:typeMyStructstruct{Callbackfunc(int)}谢谢 最佳答案 是的,函数在Go中是一流的。您可以声明functiontype任何你可以放置任何其他基本类型(如整数)的地方。 关于go-为结构字段创建函数类型,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/21028760/