草庐IT

do_some_work

全部标签

xml - 戈朗 :xml unmarshall not working as expected

获取xml格式的响应:https://sites.google.com/feeds/activity/site/siteName2009-09-10T05:24:23.120ZActivityGoogleSites1https://sites.google.com/feeds/activity/site/siteName/9403759969528760622009-09-10T03:38:42.585ZhomeUserdeletedhomeUseruser@gmail.comhttps://sites.google.com/feeds/activity/site/siteName/7

unit-testing - 戈朗 : tests and working directory

我正在用Go为我的应用程序编写一些单元测试。但是测试失败了,因为它找不到配置文件。通常,二进制文件会在路径conf/*.conf下的工作目录中查找配置文件。我想浏览到有conf/的目录,在里面运行gotest就可以解决,但是还是报文件系统找不到路径指定。如何告诉gotest使用某个目录作为工作目录,以便测试可以实际执行? 最佳答案 您可以使用Caller获取当前测试源文件的路径,如下所示:packagesampleimport("testing""runtime""fmt")funcTestGetFilename(t*testing

Gorm : How do I set an integer column to null, 并更新内存中的模型?

作为一个简单的背景,我有一个表foo,带有一个可为空的int外键bar_id。我有一个函数可以从foo中删除bar关联,也就是将其设置为NULL。我已经尝试了一切:我尝试使用sql.NullInt64作为列类型,然后foo.BarId.Valid=false//evensetInt64=0forgoodmeasuredb.Save(&foo)//withLogMode(true)bar_id未在UPDATE语句中更新我试过:db.Raw("UPDATEfooSETbar_id=NULLWHEREid=?",foo.ID).Row().Scan(&foo)谢天谢地,SQL是正确的,但是对

xml - 在 Golang 中编码 XML : field is empty (APPEND doesn't work? )

我正在学习用Go创建XML。这是我的代码:typeRequeststruct{XMLNamexml.Name`xml:"request"`Actionstring`xml:"action,attr"`...Point[]point`xml:"point,omitempty"`}typepointstruct{geostring`xml:"point"`radiusint`xml:"radius,attr"`}funcmain(){v:=&Request{Action:"get-objects"}v.Point=append(v.Point,point{geo:"55.703038,37

通过 Visual Studio Code : Imports do not work. 的 GoLang 扩展从常规命令行构建和测试正常

我正在使用VSCode在MacOS上测试这个非常简单的Go代码。该项目由这些示例包/文件组成:azure.com/myproj/cmd/service/main/main.goazure.com/myproj/cmd/service/service.goazure.com/myproj/cmd/service/tests/test.goazure.com/myproj/internal/common/common.go在终端命令行上,一切都已构建并且所有测试都通过了:去build。//(适用于每个文件夹)去测试。//(测试工作并通过)但是,从VS代码我有2个问题:1.从一个包到另一个包

html - 无法使用 goquery : some nodes are missing 收集 Google 搜索结果的所有节点

我正在尝试使用goquery库在GoLang中收集谷歌搜索页面的结果。为了实现这一点,我正在使用goquery收集goquery选择的所有节点。问题是Find("*")返回的选择似乎并不包含HTML文档的所有节点。问题:该方法是否收集具有整个树结构的所有节点?如果没有,有没有办法把它们全部收集起来?我尝试使用应用于整个文档选择的goqueryFind("*")方法。因此具有某些属性的节点不会返回,尽管它们在HTML文档中。例如,带有的节点无法识别alltags:=doc.Find("*")//doc是Google搜索的HTML文档所选内容不包含带有class="srg"的div标签。这

戈朗 : How do I encrypt plain text that is 5 characters long with DES and CBC?

目前正在尝试将5个字符长的明文加密为12个字符的加密字符串。我希望能够指定一个唯一的IV(不是随机生成的)、一个唯一的key,并使用DES。我现在的code要求明文长度为8个字符(5个字符名称加3个空格)。 最佳答案 我已经遇到过这个问题。这是因为填充问题。你想要的代码是一个Codelink你可以在goplayground上测试它。packagemainimport("crypto/cipher""crypto/des""encoding/base64""fmt""bytes")funcmain(){originalText:="y

http - 在 Golang 中使用 http.Client.Do 的空 HTTP 响应

我正在使用Go向外部Web服务发出HTTPGET请求。由于某种原因,响应的主体总是空的;内容长度始终为零字节。但是,响应状态代码始终为200,并且对Client.Do的调用不会返回任何错误。该请求需要一个Authorizationheader,因此我使用http.NewRequest/http.Client.Do模式来提交请求,如下所示。我过去曾做过类似的请求,但从未使用过需要header的GET。这似乎不太可能是原因,但我想知道这是否相关。如果有人能发现所用模式的任何潜在问题,或者可能有过类似的经历,我将不胜感激。谢谢。ifreq,err:=http.NewRequest("GET"

gorename : What is a 'DO NOT EDIT' marker?

我正在使用vscode并尝试重命名变量名称。它没有说:Renamefailed:gorename:cannotrenameidentifiersingeneratedfilecontainingDONOTEDITmarker:/home/adam/go/src/hello/hello.go那么什么是DONOTEDIT标记?为什么它在那里,我怎样才能删除它以便gorename可以做它的事情?我的文件是这样开始的:packagemain//#cgoCFLAGS:-g-Wall//#include//#include"c/greet.h"import"C"import("encoding/j

time - 戈朗 : throttle (time delay) function is not working in goroutine (works fine in main thread)

所以我正在编写一个实用程序来查询工作中的API,它们将每10秒限制为20次调用。很简单,我会将我的通话时间限制在自上次通话后至少0.5秒。在我尝试使用goroutine之前,我的Throttle实用程序运行良好。现在我正在使用结构/方法组合:func(c*CTKAPI)Throttle(){ifc.Debug{fmt.Println("\t\t\tEnteringThrottle()")}for{//incasesomethingelsemakesacallwhilewe'resleeping,weneedtore-checkift:=time.Now().Sub(c.LastCall