草庐IT

as-patterns

全部标签

url - 戈朗 : Passing a URL as a GET parameter

我想获取一个URL作为获取参数例如:example.com?domain=site.come?a=val&b=val使用中的问题query:=r.URL.Query()domain:=query.Get("domain")要获取它提供的域名,只需domain=site.come?a=val我认为是因为当r.URL.Query()遇到&时,它认为它是一个新参数有谁知道我该如何解决这个问题提前谢谢你。 最佳答案 您需要对查询字符串进行URL编码,likethis:packagemainimport("fmt""net/url")func

去 XML 解析 : use attributes as struct field name

如何将XML属性用作结构字段?这是我的测试:每行对应一个人packagemainimport("encoding/xml""fmt")varxmlstr=`John234`typeDatastruct{XMLNamexml.Name`xml:"data"`Person[]Person`xml:"row"`}typePersonstruct{PersonField[]PersonField`xml:"col"`}typePersonFieldstruct{Namestring`xml:"name,attr"`Valuestring`xml:",chardata"`}funcmain(){

pointers - 这个 "pattern"背后的动机是什么?

当我看到这样的代码时,我有点困惑:bigBox:=&BigBox{}bigBox.BubbleGumsCount=4//correct...bigBox.SmallBox.AnyMagicItem=true//alsocorrect我为什么或什么时候想要使用bigBox:=&BigBox{}而不是bigBox:=BigBox{}?它在某种程度上更有效率吗?代码示例取自here.样本2:packagemainimport"fmt"typeIntsstruct{xintyint}funcbuild_struct()Ints{returnInts{0,0}}funcbuild_pstruct

design-patterns - 使用哪种设计模式将不同类型的对象流存储到磁盘中?

考虑一个将不同类型的对象流保存到磁盘的函数:funcSave(fillfunc(cchanBaseType),filestring){}此函数在整个代码中的使用方式如下://Herewe'vegotdifferentdatastructuresdata1,data2,...//thatmustbestoredtodiskSave(func(cchanBaseType){//SaveChildren1generatesobjectsoftypeChild1based//onthedata1datastructureSaveChildren1(c,data1)},filename1)Sav

go - 将 JSON 对象 "as is"存储到数据存储中

我必须将嵌套结构存储到数据存储中。当我遇到数据存储:展平嵌套结构导致sliceslice:字段问题,我想将JSON对象按原样(作为字符串?)存储到数据存储区。这在Go中可行吗? 最佳答案 是的,它在golang中可行无论您的数据存储多么复杂(或嵌套),都可以将其转换为json。只要确保map的键是一个字符串。还要确保数据存储的元素是公开的(以大写字母开头)。如果您不想对某个字段进行编码,您可以将其设为私有(private)(以小写字母开头)。json.Marshal()将返回一个字节数组,可以将其保存到文件中。typeComplex

design-patterns - 可能有数百个小类的工厂模式的替代方案

我正在开发一个用GoLang编写的小型游戏/模拟器,其中可能有数百种能力。对于每个玩家,他们将拥有1到3种能力。我会将这些与字符串或ID一起存储。实例化这些能力的最佳方式是什么。通常我会使用工厂类,但鉴于我所说的那么多,我不确定这是最好的方法。 最佳答案 你仍然可以使用工厂模式,这就是encoding/gob包用途。Playground:http://play.golang.org/p/LjR4PTTCvw例如在abilities.go中你可以有typeAbilityinterface{Execute()}varabilities=

go - 解析球 : What is the pattern to parse all templates recursively within a directory?

Template.ParseGlob("*.html")//fetchesallhtmlfilesfromcurrentdirectory.Template.ParseGlob("**/*.html")//Seemstoonlyfetchatoneleveldepth我不是在寻找“步行”解决方案。只是想知道这是否可能。我不太明白这是什么“模式”。如果我能得到有关ParseGlob使用的模式的解释,那也很棒。 最佳答案 codetext/template/helper.go提及//Thepatternisprocessedbyfile

pointers - 戈朗 : Passing in Slice as Reference issue

我正在尝试编写一个程序来计算数组中的反转,但由于引用问题,我的数组没有正确排序,因此弄乱了我的计数,即使我认为slice在Golang中是通过引用传递的。这是我的代码:packagemainimport("fmt")funcInversionCount(a[]int)int{iflen(a)0||len(right)>0{iflen(left)==0{*res=append(*res,right...)break}iflen(right)==0{*res=append(*res,left...)break}ifleft[0]解决这个问题的最佳方法是什么?我试图通过强制mergeCoun

戈朗 : Read buffered input as signed 16bit ints

我正在尝试读取带符号的16位整数(wav格式)的缓冲流,但bufio.Read方法只接受一个字节数组。我的问题是2部分:我可以将字节流预格式化为缓冲的int16数组吗?如果不能,将字节数组后处理为int16数组的最佳方法是什么?我最初的想法是使用tmp数组并继续推送/处理它们,但我很好奇是否有更惯用的方法来做到这一点?packagemainimport("bufio""io""log""os/exec")funcmain(){app:="someapp"cmd:=exec.Command(app)stdout,err:=cmd.StdoutPipe()r:=bufio.NewReade

go - 使用go mod下载时出现 "Pattern matched no module dependencies"是什么原因?

运行gomoddownload时会显示警告(警告:模式“全部”不匹配任何模块依赖项)并且我的go.mod文件中没有任何模块下载到本地缓存。我花了最后一个小时在谷歌上试图找到类似的错误,但一直坚持唯一的结果是破坏CI构建日志。我的go.mod文件如下:modulegithub.com/j4ng5y/scraper-apigo1.12require(github.com/PuerkitoBio/goqueryv1.5.0//indirectgithub.com/antchfx/htmlqueryv1.0.0//indirectgithub.com/antchfx/xmlqueryv1.0.