Tag:

如何debugging用Go语言编写的程序?

我如何debuggingGo程序? 我一直在使用Gedit Go IDE ,但没有debugging。 有没有办法通过我的代码来检查内存? 还是我坚持打印报表? 我可以使用OutputDebugString吗?

为什么fmt.Println在goroutine中不打印行?

我有以下代码: package main import "net" import "fmt" import "bufio" func main() { conn, _ := net.Dial("tcp", "irc.freenode.net:6667") reader := bufio.NewReader(conn) go func() { str, err := reader.ReadString('\n') if err != nil { // handle it fmt.Println(err) } fmt.Println(str) }() } 如果我没有在goroutine中从缓冲区中读取的代码,它会输出这样的消息,这是我期望发生的事情: :zelazny.freenode.net NOTICE * :*** Looking up your hostname… 但是,在一个goroutine里面,什么也不打印。 有人可以解释为什么吗?

返回指向本地结构的指针

我看到一些代码示例的结构如下所示: type point struct { x, y int } func newPoint() *point { return &point{10, 20} } 我有C + +背景,这似乎对我来说是错误的。 这种结构的语义是什么? 是新的点分配在堆栈或堆?

如何使用Go Web服务器提供静态html文件?

如何使用Go Web服务器为index.html(或其他静态HTML文件)提供服务? 我只想要一个基本的,静态的HTML文件(例如文章),我可以从一个去web服务器。 HTML应该可以在go程序之外修改,就像在使用HTML模板时一样。 这是我的networking服务器,只承载硬编码的文本(“你好,世界!”)。 package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello world!") } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":3000", nil) }

去github私人回购的'terminal提示禁用'错误的结果

我从浏览器中使用Github UI创build了私人回购examplesite / myprivaterepo。 然后,我去我的去目录(在桌面上)并克隆它: $ cd $GOPATH $ go get github.com/examplesite/myprivaterepo 到现在为止还挺好。 创build文件scheduler.go,添加到回购,并推送。 $ vim scheduler.go $ git add scheduler.go $ git commit $ git push Everythng的确定。 但是当我去一个干净的笔记本电脑,并试图克隆回购,我得到一个错误: # Now on laptop, which doesn't yet know about the repo $ cd $GOPATH $ go get github.com/examplesite/myprivaterepo # At this point it should ask for […]

用Go语言获取Unix时间戳(自纪元以来的秒数)

我有一些代码写在Go,我正在尝试更新以使用最新的每周版本。 (它是在r60下build成的)。 现在一切正在工作,除了以下几点: if t, _, err := os.Time(); err == nil { port[5] = int32(t) } 任何关于如何更新这个与当前的Go实现一起工作的build议?

如何清除Go中的地图?

我正在寻找类似于c ++函数.clear()的原始typesmap 。 或者我应该只是创build一个新的地图? 更新:谢谢你的回答。 通过查看答案,我刚刚意识到,有时创build一个新的地图可能会导致一些我们不想要的不一致。 考虑下面的例子: var a map[string]string var b map[string]string func main() { a = make(map[string]string) b=a a["hello"]="world" a = nil fmt.Println(b["hello"]) } 我的意思是,这仍然不同于c ++中的.clear()函数,它将清除对象中的内容。

去进程间通信

我正在写一个负载平衡的服务器系统。 负载均衡服务器将与多个应用程序服务器进行通信并处理请求。 这些服务器既可以在同一台机器上运行,也可以在networking上运行。 我已经想出了networking,但现在我需要find一个负载均衡器与本地应用程序服务器进行通信的最佳方式。 使用localhostnetworking似乎远非最佳。 我试图通过shmget和shmat系统调用共享内存,但没有find任何工作示例,并且syscall包也完全没有logging。 有人能给我提供一个如何使用这些调用或在Go上工作的一个现实的替代scheme来做IPC的例子吗?

如何编译由多个文件组成的Go程序?

所以我有一个由三个文件组成的小程序,都属于同一个软件包(main),但是当我执行“go build main.go”时,构build不成功。 当它只是一个文件(main.go)一切正常。 现在,我花了一些努力来分离代码,看起来编译器无法find从main.go中取出的东西,并将其放入这两个其他文件(与main.go位于同一目录) 。 这会导致“未定义”types的错误。 我读了一些关于设置GOPATHvariables的信息,所以我试了一下 set GOPATH=%cd% go build main.go 但是这也不起作用。 任何帮助表示赞赏。

从Go中减去time.Duration

我有一个时间time.Now()时间价值,我想要得到另一个正好是1个月前的时间。 我知道减法是可能的time.Sub() (这需要另一个time.Time ),但是这将导致time.Duration ,我需要它相反。