Tag:

任何关于如何避免在Go中导入循环的好build议?

我正在做一个Go项目一个月。 好的是Go非常高效。 但经过一个月的发展,我已经有了数千行代码和许多packages 。 为了避免导入周期对我来说是一个主要的问题,任何时候我有一个导入周期的错误,我不知道这个问题可能在第一时间。 Go编译器也只有非常简单的通知,总是不够好,不能像以下情况main.go:7:3: import cycle not allowed定位问题: main.go:7:3: import cycle not allowed 。 它只会帮助你知道哪个文件可能导致问题,但没有更深层次的。 由于在代码增长的同时, import关系变得越来越复杂,所以我很想知道如何在Go中更有效地避免导入循环。 任何帮助深表感谢。

使用Gorilla工具包为根URL提供静态内容

我正在尝试使用Gorilla工具包的mux程序包来在Go Web服务器中路由URL。 使用这个问题作为指导,我有以下转到代码: func main() { r := mux.NewRouter() r.Handle("/", http.FileServer(http.Dir("./static/"))) r.HandleFunc("/search/{searchTerm}", Search) r.HandleFunc("/load/{dataId}", Load) http.Handle("/", r) http.ListenAndServe(":8100", nil) } 目录结构是: … main.go static\ | index.html | js\ | <js files> | css\ | <css files> 在index.html中引用了Javascript和CSS文件,如下所示: … <link rel="stylesheet" href="css/redmond/jquery-ui.min.css"/> <script src="js/jquery.min.js"></script> … 当我在我的networking浏览器中访问http://localhost:8100 , index.html内容已成功传递,但所有js和css URL都返回404s。 我怎样才能让程序从static子目录中提供文件?

打包去Debian的应用程序

我怎样才能把我的Go二进制文件放到Debian软件包中? 由于Go是静态链接的,我只有一个可执行文件 – 我不需要太多复杂的项目元数据信息。 有没有一个简单的方法来打包可执行文件和资源文件,而不会经历debuild的创伤? 我已经看了很多现存的问题。 然而,我所有的研究都是关于一个包含golang开发环境的.deb文件的问题/答案(即,如果你使用sudo apt-get install golang-go ,你会得到什么)。

根据事件分组数字?

给出以下三个数字序列,我想弄清楚如何对数字进行分组以find它们之间最密切的关系。 1,2,3,4 4,3,5 2,1,3 … 我不确定我要找的algorithm是什么,但是我们可以看到一些数字与其他数字的关系更强。 这些数字一起出现两次: 1 & 2 1 & 3 2 & 3 3 & 4 一起一次: 1 & 4 2 & 4 3 & 5 4 & 5 例如,我们可以看到1, 2, & 3之间必须有一个关系1, 2, & 3因为它们至less出现两次。 你也可以说3 & 4是密切相关的,因为它们也出现两次。 然而,该algorithm可能会select[1,2,3] (超过[3,4] ),因为它是一个更大的分组(更包含)。 如果我们把最经常使用的数字放在一起,我们可以组成以下任何一个分组: [1,2,3] & [4,5] [1,2] & [3,4] & [5] [1,2] […]

为什么在Golang的封闭体后添加“()”?

我正在阅读The Go Programming Language Specifications ,发现自己在封闭体之后没有真正理解“()”: 在Function literals : func(ch chan int){ch < – ACK} (replyChan) ` 在Defer statements的例子中: // f returns 1 func f() (result int) { defer func() { result++ }() // why and how? return 0 } 我不清楚在封闭体之后添加和使用“()”的原因,希望有人能够解释清楚。

为什么我不能在golang中拷贝一份拷贝?

我需要做一个切片的副本去阅读文档有一个复制function在我的处置。 复制内置函数将来自源片段的元素复制到目标片段中。 (作为特殊情况,它也会将字节中的字节复制到一个字节片段中。)源和目标可能会重叠。 复制返回复制的元素的数量,这将是len(src)和len(dst)的最小值。 但是当我这样做 arr := []int{1, 2, 3} tmp := []int{} copy(tmp, arr) fmt.Println(tmp) fmt.Println(arr) 我的tmp是空的,因为它以前(我甚至试图使用arr,tmp): [] [1 2 3] 你可以去操场上检查它。 那么为什么我不能复制一个切片?

按键排列golang映射值

在主题函数返回的代码中迭代返回的映射时,键不会按顺序显示。 我怎样才能得到钥匙按顺序sorting映射,以便按键顺序和值对应? 这是代码 。

如何从下载源安装golang第三方项目?

我正在尝试安装mgo ,这是用golang编写的一个mongo驱动程序。 标准命令: go get launchpad.net/mgo 但由于某些证书问题而失败。 所以我手动将mgo的源码下载到本地E:\mgo ,但我不知道如何安装它。 文件树: ├─.bzr │ ├─branch │ │ └─lock │ ├─branch-lock │ ├─checkout │ │ └─lock │ └─repository │ ├─indices │ ├─lock │ ├─obsolete_packs │ ├─packs │ └─upload ├─bson └─testdb 我试过了: cd mgo go install 它报告: auth.go:34:2: import "launchpad.net/mgo/bson": cannot find package 但是如果我尝试先安装bson: cd bson go install 它报告另一个错误: […]

如何索引Golangstring中的字符?

如何获得“E”输出而不是69? package main import "fmt" func main() { fmt.Print("HELLO"[1]) } Golang是否有将字符转换为字节的function?

goroutines最大数量

我可以使用多less个肠衣? 例如维基百科说,在Erlang中,可以创build2000万个进程而不会降低性能。 更新:我刚刚在goroutines性能上调查了一下,得到了这样的结果: 看起来goroutine的寿命更多的是计算sqrt()1000次(〜45μs),唯一的限制就是内存 Goroutine花费4 – 4.5 KB