草庐IT

golang-book

全部标签

Golang 时间格式化为特定的时间戳

我正在尝试将time.Time类型格式化为昨天的特定时间(特别是23:59:59)我有一个将当前时间转换为IST的函数funcgetTimeInIST()time.Time{loc,_:=time.LoadLocation("Asia/Kolkata")now:=time.Now().In(loc)returnnow}另一个转换为前一天的函数funcGetYesterdaysDateFromTime()time.Time{returngetTimeInIST().AddDate(0,0,-1)}我想将上面的格式格式化为日期的时间戳2009-06-1223:59:59为此我做yester

go - 我使用 pprof 的 golang 程序分析显示内存在 std/json 包中的 json (* decodeState) objectInterface 处增加

我有一个golang程序,它使用std“encoding/json”包中的unmarshall,其大小不断增加(内存泄漏)。使用pprof的内存配置文件图显示内存在json(*decodeState)objectInterface增加。我想了解解决问题的方式和原因。我已经在上层尝试了几件事,比如释放返回值以避免泄漏,但没有成功。func(jJSONEncoding)From(b[]byte,msginterface{})(interface{},error){err:=json.Unmarshal(b,&msg)returnmsg,err}pproftop5显示了这个调用,以及下面的详

单一读者和单一作者的 Golang 分配安全

假设我有两个go例程:varsequenceint64//writerfori:=sequence;i那么我可以不用atomic吗?我能想到的一些潜在风险:重新排序(对于作者而言,更新sequence发生在doSomething之前)可能会发生,但我可以接受。sequence在内存中未正确对齐,因此读者可能会观察到部分更新的i。使用x86_64在(最新内核)linux上运行,我们可以排除这种可能性吗?go编译器“巧妙地优化”了读取器,因此对i的访问永远不会进入内存,而是在寄存器中缓存。这可能吗?还有什么吗? 最佳答案 Go的座右铭:

Golang 模拟所有参数,除了

mock.on("FunctionName","someStringArgument").Return(...)假设如果someStringArgument是“hello”,那么我想返回“1”。但是,如果someStringArgument是任何其他字符串,我想返回“2”。GoMock如何实现这一点? 最佳答案 您要做的是编写一个自定义函数,它将返回您想要的输出。这是我所做的一个简单示例。定义自定义响应函数funcFunctionNameResponse(argString)string{ifarg=="hellp"{//Iused

go - 运行时错误 :Invalid memory Address or nil pointer dereference-golang

我是golang的新手,正在尝试开发一个带有session的登录页面。代码构建成功,但是当我在浏览器中运行时,它说404页面未找到。任何人都可以帮助我。提前致谢。这是我的代码//main.gopackagemainimport(_"HarishSession/routers""github.com/astaxie/beego""fmt""net/http""html/template""strings""log""github.com/astaxie/beego/session""sync")varglobalSessions*session.Managervarprovides=ma

golang上的html模板使用

抱歉,我是初学者,我阅读了golang.docs但不太理解。我已经:index.html:在main.go中如果用户单击保存按钮然后选中复选框重定向该页面并显示选中的复选框 最佳答案 您可以在map中发送变量。例如:packagemainimport("bytes""fmt""text/template")funcmain(){t,_:=template.New("hi").Parse("Hi{{.name}}")vardocbytes.Buffert.Execute(&doc,map[string]string{"name":"P

node.js - 我不明白 golang,为什么我的应用程序不调用这个函数并且表现得不像 nodejs

我对golang完全陌生。但是我有一些来自nodejs的知识现在我想学习Go,在这里你可以看到一个应该启动网络服务器的应用程序,然后它应该向控制台打印hello。但似乎是在行之后http.ListenAndServe(":"+serverportString,nil)它完全停止了。在nodejs中它会同时运行。我这里有误会吗?下一行是sayhello()应该启动向控制台打招呼的功能。但它就在之前停止了。这里可以看到完整的代码//itshouldstartawebserveratport8080//anditshouldprinthellototheconsolepackagemaini

golang 错误处理类型不匹配

我试图学习golang中的错误处理以了解错误处理的工作原理。我有以下代码:varaint8varbint32varerrerrorc:=a+b//typesmismatchederroriferr!=nil{fmt.Println(err)}当我尝试在vim中使用:GoRun运行它时,出现类型不匹配的错误。我的问题是,如果在编译过程中发生错误,甚至可能的话,我该如何捕获该错误并将消息打印到屏幕上? 最佳答案 尝试在Go中添加两种不同的类型是一个编译时错误。该程序永远不会编译,因此永远不会运行,所以没有什么可捕捉的——除非在编写你的程

mysql - 无效的内存地址或 nil 指针取消引用 golang 数据库

我搜索了很多以找到解决此错误的方法,但没有任何效果。当我在main函数中使用查询时,它工作正常,但是当我将它传递给Group函数时,它会出现panic。这是代码:packagemainimport("database/sql""encoding/json""fmt""net/http""strconv""strings")vardb*sql.DBvarerrerrortypeRowstruct{IdintTitlestring`json:"title,omitempty"`Adressstring`json:"adress,omitempty"`Tozihatstring`json:"

go - 在golang中,如何保护自己的锁不被调用者破坏?

我尝试使用“sync.mutex”保护我的函数,但我发现锁仍然使用调用者来销毁它。varmutexsync.mutex这是错误://callerusefunca(){fori:=0;i这是成功的,但是破坏了我的封装方法://callerusefunca(){fori:=0;i谢谢 最佳答案 TheGoProgrammingLanguageSpecificationExportedidentifiersAnidentifiermaybeexportedtopermitaccesstoitfromanotherpackage.Anide