关于go的常见问题合集,有技术问题,上 bug200.com
#### [如何在正则表达式中跨多行匹配任何字符?](https://bug200.com/post/159118)
例如,这个regex (.*)<FooBar> 将匹配: abcde<FooBar> 但是如何让它跨多行匹配呢? abcde fghij<FooBar>
#### [将字节数组转换为字符串的最佳方法是什么?](https://bug200.com/post/14230145)
我需要阅读[100]byte把一堆string数据。 因为不是所有的stringS正好有100个字符长,是byte array被填充0S. 如果我转过身[100]byte到string通过:string(byteArray[:])尾矿0s显示为^@^@S. 在C中string将于终止0,所以我想知道什么是智能转移的最佳方式byte array到string在Golang。
#### [如何检查地图是否包含一个键在Go中?](https://bug200.com/post/2050391)
我知道我可以在地图M上迭代, for k, v := range m { ... } 寻找一把钥匙,但是有没有一种更有效的方法来测试一把钥匙在地图上的存在?谢谢。我找不到答案language spec.
#### [如何将字符串分配给字节数组](https://bug200.com/post/8032170)
我要将字符串分配给字节数组: var arr [20]byte str := "abc" for k, v := range []byte(str) { arr[k] = byte(v) } 有其他方法吗?
#### [Go中有foreach循环吗?](https://bug200.com/post/7782411)
有没有foreach用Go语言构建?我可以使用for?
#### [如何在go中将int值转换为字符串?](https://bug200.com/post/10105935)
i := 123 s := string(i) S是“E”,但我想要的是“123” 请告诉我怎样才能得到“123”。 在Java中,我可以这样做: String s = "ab" + "c" // s is "abc" 我怎么能concat有两条线吗?
#### [如何在go中的post请求中发送JSON字符串](https://bug200.com/post/24455147)
我尝试使用apiary,并创建了一个通用模板,将JSON发送到模拟服务器,并具有以下代码: package main import ( "encoding/json" "fmt" "github.com/jmcvetta/napping" "log" "net/http" ) func main() { url := "http://restap
#### [如何在Go中查找对象类型?](https://bug200.com/post/20170275)
如何在Go中找到对象的类型?在python中,我只使用typeof获取对象类型。同样,在Go中,有没有实现相同的方法? 下面是我要迭代的容器: for e := dlist.Front(); e != nil; e = e.Next() { lines := e.Value fmt.Printf(reflect.TypeOf(lines)) } 在本例中,我无法获取对象行的类型,
#### [在go中逐行读取文件](https://bug200.com/post/8757389)
我找不到file.ReadLine功能在Go中。我可以想出如何快速地写一封信,但只是想知道我是否忽略了这里的一些东西。如何逐行读取文件?
#### [如何使用go读/写文件?](https://bug200.com/post/1821811)
我一直在试着自己去学习,但我一直在尝试读写普通文件。 我可以走到inFile, _ := os.Open(INFILE, 0, 0),但实际上获取文件的内容是没有意义的,因为读取函数需要[]byte作为参数。 func (file *File) Read(b []byte) (n int, err Error)
#### [遍历映射的所有键](https://bug200.com/post/1841443)
有没有办法在Go语言地图中获得所有键的列表?元素的数量由len()但是如果我有这样的地图: m := map[string]string{ "key1":"val1", "key2":"val2" }; 如何迭代所有键?
#### [如何在go中编写多行字符串?](https://bug200.com/post/7933460)
go是否有类似于python的多行字符串的内容: """line 1 line 2 line 3""" 如果不是,写跨越多行的字符串的首选方法是什么?
#### [可选参数?](https://bug200.com/post/2032149)
可以使用可选参数吗?或者我可以只定义两个具有相同名称和不同数量参数的函数吗?
#### [设置Go字符串的格式而不打印?](https://bug200.com/post/11123865)
有没有一种简单的方法来格式化Go中的字符串而不打印该字符串? 我能做到: bar := "bar" fmt.Printf("foo: %s", bar) 但我希望返回格式化的字符串,而不是打印,这样我可以进一步操作它。 我也可以做一些类似的事情: s := "foo: " + bar 但是,当格式字符串很复杂时,这就变得难以读取;当其中一个或多个部分不是字符串时,这就变得很麻烦,必须先进行转换
#### [没有gopath如何导入本地包?](https://bug200.com/post/17539407)
我已经用过GOPATH但就目前这个问题而言,我所面临的一切都无济于事。我希望能够创建特定于项目的包: myproject/ ├── binary1.go ├── binary2.go ├── package1.go └── package2.go 我试过多种方法,但我怎么才能package1.go在工作中binary1.go或binary2.go等等? 例如,我希望能够import "packa
#### [如何从其PID中获取流程详细信息](https://bug200.com/post/9378021)
我维护了一个当前在我的系统(Linux)上运行的进程的pid列表,如果我能从这个pid中获得进程的详细信息,我会在golang中访问syscall.getrusage(),但是我没有得到想要的结果。 有人有相关的想法吗
#### [如何在Go[关闭]中处理配置](https://bug200.com/post/16465705)
我是新来的at-go编程人员,我想知道:处理go程序配置参数的首选方法是什么性质文件或伊尼其他情况下的文件?
#### [如何在戈兰使用定制包?](https://bug200.com/post/15049903)
我正在尝试在Go中创建和使用自定义包。这可能是很明显的事情,但我找不到很多关于这方面的信息。基本上,我在同一个文件夹中有这两个文件: 百万富翁 package mylib type SomeType struct { } 主走 package main import ( "mylib" ) func main() { } 当我尝试go run main.go,我得到这个错误:
#### [在go中测试空字符串的最佳方法是什么?](https://bug200.com/post/18594330)
对于测试非空字符串(在go中),哪种方法最好(更像idomatic)? if len(mystring) > 0 { } 或: if mystring != "" { } 或者别的什么?
#### [从地图中获取关键点的切片](https://bug200.com/post/21362950)
在Go中,有没有更简单/更好的方法从地图中获取一个关键点? 目前我正在迭代映射并将键复制到一个切片: i := 0 keys := make([]int, len(mymap)) for k := range mymap { keys[i] = k i++ }
#### [在go中将字符串转换为整型?](https://bug200.com/post/4278430)
我正在尝试转换从返回的字符串flag.Arg(n)对int. Go中的惯用方法是什么?
#### [如何获取当前运行文件的目录?](https://bug200.com/post/18537257)
在我使用的NoDjs中__dirname. 在戈兰,这是什么等价物? 我在谷歌上找到了这篇文章http://andrewbrookins.com/tech/golang-get-directory-of-the-current-file/. 他用下面的代码 _, filename, _, _ := runtime.Caller(1) f, err := os.Open(path.Join(path
#### [开始构建:“找不到包”(即使设置了gopath)](https://bug200.com/post/13214029)
尽管gopath设置得很好,但我还是找不到自己的包。我做错什么了?非常感谢! $ echo $GOROOT /usr/local/go $ echo $GOPATH /home/mitchell/go $ cat ~/main.go package main import "foobar" func main() { } $ cat /home/mitchell/go/src/foobar.
#### [如何在戈兰得到JSON响应](https://bug200.com/post/17156371)
我正在尝试从Web读取JSON数据,但该代码返回空结果。我不知道我在这里做错了什么。 package main import "os" import "fmt" import "net/http" import "io/ioutil" import "encoding/json" type Tracks struct { Toptracks []Toptracks_info } ty
#### [Gmail:530 5.5.1需要身份验证。了解更多](https://bug200.com/post/17227532)
此Go程序成功地从我的家庭计算机发送电子邮件,但在DigitalOcean上的虚拟服务器上收到以下错误: panic: 530 5.5.1 Authentication Required. Learn more at 代码如下: auth := smtp.PlainAuth("", "bjorkbjorksen@gmail.com", "PASSWORD", "smtp.gmail.com")
#### [无法将数据(类型接口)转换为类型字符串:需要类型断言](https://bug200.com/post/14289256)
我刚开始玩这个notify包裹。 起初我有这样的代码: func doit(w http.ResponseWriter, r *http.Request) { notify.Post("my_event", "Hello World!") fmt.Fprint(w, "+OK") } 我想把换行符附加到Hello World!但不在函数中doit上面,因为那是很琐碎的,但是在ha
#### [无法下载,$gopath未设置](https://bug200.com/post/20628918)
我想用安装json2csvgo get github.com/jehiah/json2csv但我收到这个错误: package github.com/jehiah/json2csv: cannot download, $GOPATH not set. For more details see: go help go path 如何在MacOS上解决这个问题有什么帮助吗?
#### [将go结构转换为json](https://bug200.com/post/8270816)
我正在尝试使用json但我得到的只是{}. 我确信这是非常明显的事情,但我看不到。 package main import ( "fmt" "encoding/json" ) type User struct { name string } func main() { user := &User{name:"Frank"} b, err :=
#### [什么是比python&s http.server(或simplehttpserver)更快的替代方案?](https://bug200.com/post/12905426)
蟒蛇http.server(或simplehttpserver for python 2)是从命令行服务当前目录内容的一种很好的方法: python -m http.server 然而,就网络服务器而言,这是非常缓慢的… 它的行为就像是单线程的,并且在使用RequireJS加载JavaScriptAMD模块时偶尔会导致超时错误。加载一个没有图像的简单页面可能需要5到10秒。 有什么比这更方便的选
#### [Go中无检测](https://bug200.com/post/20240179)
我在Go中看到了很多检测nil的代码,如下所示: if err != nil { // handle the error } 但是,我有一个这样的结构: type Config struct { host string port float64 } config是config的一个实例,当我这样做时: if config == nil { } 有编译错误
#### [如何在go中获取当前时间戳?](https://bug200.com/post/5885486)
在go中获取当前时间戳并转换为字符串的最佳方法是什么?我需要日期和时间,例如,YYYYMMDDHHMMSS格式。
#### [将文本文件读取到字符串数组中(并写入)](https://bug200.com/post/5884154)
在字符串数组中读(写)一个文本文件的能力是我认为相当普遍的要求。当从一种语言开始时,它也非常有用,它消除了最初访问数据库的需要。戈兰有吗?例如 func ReadLines(sFileName string, iMinLines int) ([]string, bool) { 和 func WriteLines(saBuff[]string, sFilename string) (bool) {
#### [如何在Ubuntu Precise中安装Go的当前版本](https://bug200.com/post/17480044)
运行sudo apt-get install golang-stable,我得到Go版本go1.0.3. 有什么安装方法吗go1.1.1?
#### [golang将项目附加到切片](https://bug200.com/post/20195296)
为什么a保持不变?做append()生成新切片? package main import ( "fmt" ) var a = make([]int, 7, 8) func Test(slice []int) { slice = append(slice, 100) fmt.Println(slice) } func main() { for i := 0;
#### [在Go&S HTTP包中,如何获取POST请求的查询字符串?](https://bug200.com/post/15407719)
我正在使用http包从开始处理后请求。如何从Request对象?我从官方文件中找不到答案。
#### [在go中列出目录](https://bug200.com/post/14668850)
我一直在试图找出如何在Go中简单地列出单个目录中的文件和文件夹。 我找到了filepath.Walk但它会自动进入子目录,我不想这样。我所有的其他搜索都没有找到更好的结果。 我确信这个功能是存在的,但是很难找到。如果有人知道我该去哪里,请告诉我。谢谢。
#### [将接口转换为int](https://bug200.com/post/18041334)
我试图从JSON中获取一个值并将其强制转换为int,但它不起作用,我不知道如何正确地执行它。 以下是错误消息: ...cannot convert val (type interface {}) to type int: need type assertion 代码: var f interface{} err = json.Unmarshal([]byte(jsonStr),
#### [设置HTTP头](https://bug200.com/post/12830095)
我正试图在Go Web服务器中设置一个标题。我在用gorilla/mux和net/http包装。 我想设置Access-Control-Allow-Origin: *允许跨域Ajax。 这是我的通行密码: func saveHandler(w http.ResponseWriter, r *http.Request) { // do some stuff with the request data
#### [如何拆分字符串并将其分配给golang中的变量?](https://bug200.com/post/16551354)
在python中,可以拆分字符串并将其分配给变量: ip, port = '127.0.0.1:5432'.split(':') 但在戈兰,这似乎不起作用: ip, port := strings.Split("127.0.0.1:5432", ":") // assignment count mismatch: 2 = 1 问题:如何拆分字符串并在一个步骤中分配值?
#### [如何在指定的文件中运行测试用例?](https://bug200.com/post/16935965)
我的包测试用例分散在多个文件中,如果我运行go test <package_name>它运行包中的所有测试用例。 不过,没有必要运行所有这些程序。有没有方法为指定文件go test运行,以便它只运行文件中定义的测试用例?
#### [如何编译由多个文件组成的GO程序?](https://bug200.com/post/10838469)
所以我有一个由三个文件组成的小程序,它们都属于同一个包(main),但是当我执行“go build main.go”时,构建不会成功。当它只是一个文件(main.go)时,一切都正常。现在我花了点力气来分离代码,看起来编译器找不到从main.go中取出并放入这两个其他文件中的内容(它们与main.go位于同一目录中)。导致“未定义的”类型“错误。 我读了一些关于设置gopath变量的内容,所以我尝
#### [如何将持续时间乘以整数?](https://bug200.com/post/17573190)
为了测试并发的goroutine,我在函数中添加了一行,以使返回所需的随机时间(最多一秒钟) time.Sleep(rand.Int31n(1000) * time.Millisecond) 但是当我编译时,我得到了这个错误 .\crawler.go:49:无效操作:rand.int31n(1000)*time.millisecond(不匹配的类型int32和time.duration) 有
#### [如何从正在运行的Docker容器读取文件和stdout](https://bug200.com/post/24621067)
为了从正在运行的Docker容器中读取文件和stdout,如何在主机中启动应用程序? 基本上我想这样做: docker start containerid ./myapp // This app will *somehow* have access files and stdout generated by the container I just stared. 我该怎么做呢?更具体地
#### [在go中将float64转换为int](https://bug200.com/post/8022389)
如何在go中将float64转换为int?我知道strconv包可以用于在字符串之间转换任何内容,但不能在非字符串的数据类型之间转换。我知道我可以用fmt.Sprintf将任何内容转换为字符串,然后strconv到我需要的数据类型,但是这个额外的转换看起来有点笨拙——有更好的方法吗?
#### [歌朗随机数发生器如何正确播种](https://bug200.com/post/12321133)
我正在尝试在go中生成一个随机字符串,下面是我迄今为止编写的代码: package main import ( "bytes" "fmt" "math/rand" "time" ) func main() { fmt.Println(randomString(10)) } func randomString(l int) string { va
#### [切片的最后一个元素](https://bug200.com/post/22535775)
什么是Go提取的最后一个元素的方法slice? var slice []int slice = append(slice, 2) slice = append(slice, 7) slice[len(slice)-1:][0] // Retrieves the last element 上面的解决方案是可行的,但看起来很尴尬。
#### [“无法识别的导入路径”with go get](https://bug200.com/post/20458796)
我想安装一个web.go但运行go get github.com/hoisie/web收益率 package bufio: unrecognized import path "bufio" package bytes: unrecognized import path "bytes" package crypto/rand: unrecognized import path "crypto/ran
#### [函数能否在go中作为参数传递?](https://bug200.com/post/12655464)
在Java中,我可以做一些类似的事情。derp(new Runnable { public void run () { /* run this sometime later */ } })稍后在方法中“运行”代码。处理(匿名的内部类)是一种痛苦,但它是可以做到的。 Go是否有一些可以方便作为参数传入函数/回调的功能?
#### [在go中提取子字符串](https://bug200.com/post/12311033)
我正在尝试从控制台读取整行(包括空白),然后处理它。使用bufio.readstring,新行字符与输入一起读取,因此我想出了以下代码来修剪新行字符: input,_:=src.ReadString('\n') inputFmt:=input[0:len(input)-2]+"" //Need to manually add end of string 有没有更惯用的方法?也就是说,是否已经有一
#### [声明常量数组](https://bug200.com/post/13137463)
我已经尝试过: const ascii = "abcdefghijklmnopqrstuvwxyz" const letter_goodness []float32 = { .0817,.0149,.0278,.0425,.1270,.0223,.0202, .0609,.0697,.0015,.0077,.0402,.0241,.0675, .0751,.0193,.0009,.0599,.0
#### [安装Go with BREW并运行GoTour](https://bug200.com/post/12843063)
我在跟踪http://tour.golang.org/直到第三步告诉你可以在你的系统上安装Gotour。 之后,我通过以下方式安装了BREW的Go语言: brew install hg brew install go 然后我下载了Gotour by: go get code.google.com/p/go-tour/gotour 当我试图启动Gotour时,它没有识别出命令: $ gotour
#### [golang中是否有迭代整数范围的方法?](https://bug200.com/post/21950244)
Golang的范围可以迭代地图和切片,但是我想知道是否有一种方法可以迭代一系列的数字,类似于这样 for i := range [1..10] { fmt.Println(i) } 或者有没有一种方法可以像ruby那样表示go中的整数范围?
#### [如何将int改为int64?](https://bug200.com/post/13137365)
我试图在go中将一个整数转换成integer64,但我运气不好。有人知道一个简单的方法吗?
#### [从结构中移除字段或将其隐藏在JSON响应中](https://bug200.com/post/17306358)
我在Go中创建了一个API,在被调用时执行查询,创建一个结构实例,然后将该结构编码为JSON,然后再发送回调用方。现在我想允许调用者通过传入“fields”get参数来选择他们想要返回的特定字段。 这意味着根据字段值,我的结构将更改。是否有任何方法可以从结构中移除字段?或者至少在JSON响应中动态隐藏它们?(注意:有时我有空值,所以json omitempty标记在这里不起作用)如果这两者都不可能
#### [字符串的零是什么?](https://bug200.com/post/12703243)
func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key 文件上说: new key创建一个新键。kind不能为空。一个或两个 StringID和IntId必须零. 如果两者都为零,则键 返回不完整。父级必须是完整键或零。 字符串的零是什么? 我试过0和nil我有错误,比如:
#### [如何将整个文件读取为字符串变量](https://bug200.com/post/13514184)
我有很多小文件,我不想一行一行地读。 Go中是否有将整个文件读取为字符串变量的函数?
#### [无法加载package:package.:没有可构建的go源文件](https://bug200.com/post/24095004)
以下是错误消息: % go get can't load package: package .: no buildable Go source files in /Users/7yan00 % echo $GOPATH /Users/7yan00/Golang 您将如何解决该错误?
#### [如何使用go漂亮地打印JSON?](https://bug200.com/post/19038598)
有人知道在Go中漂亮打印JSON输出的简单方法吗? 股票http://golang.org/pkg/encoding/json/包似乎不包含此功能(编辑:是的,请看接受的答案)而且快速的谷歌不会发现任何明显的东西。 我要找的用途都是漂亮的打印结果json.Marshal并且只需从任何地方格式化一个充满JSON的字符串,这样就更容易出于调试目的进行读取。
#### [在go中对多个返回值执行转换/类型断言的惯用方法](https://bug200.com/post/11403050)
在go中转换多个返回值的惯用方法是什么? 你能在一行中完成它吗,或者你需要使用临时变量,比如我在下面的例子中所做的? package main import "fmt" func oneRet() interface{} { return "Hello" } func twoRet() (interface{}, error) { return "Hejsan", nil }
#### [你怎么清除围棋中的一片?](https://bug200.com/post/16971741)
清除Go中切片的适当方法是什么? 这是我在go forums: // test.go package main import ( "fmt" ) func main() { letters := []string{"a", "b", "c", "d"} fmt.Println(cap(letters)) fmt.Println(len(letters))
#### [如果还有其他语句,怎么做一行?](https://bug200.com/post/26545883)
我可以在go(golang)中编写一个带有变量赋值的if-else语句吗,就像在php中那样(例如): $var = ( $a > $b )? $a: $b; 目前我必须使用以下方法: var c int if a > b { c = a } else { c = b } 很抱歉,如果这个控制语句和在站点和谷歌搜索中找不到信息,我就记不起它的名字了。:
#### [使用“http.newrequest(&hellip;)”生成URL编码的post请求](https://bug200.com/post/19253469)
我想向API发出一个post请求,将数据作为application/x-www-form-urlencoded内容类型。由于我需要管理请求头,因此使用http.NewRequest(method, urlStr string, body io.Reader)创建请求的方法。对于这个POST请求,我将数据查询附加到URL,并将正文保留为空,如下所示: package main import (
#### [交叉编译继续OSX?](https://bug200.com/post/12168873)
我正试图在OSX上交叉编译一个go应用程序来构建Windows和Linux的二进制文件。我把网上能找到的东西都读了。我发现的最接近的例子已经发表(除了许多关于Go Nuts邮件列表的未完成讨论之外): http://solovyov.net/en/2012/03/09/cross-compiling-go/ 但它在我的安装上不起作用。我已经走了1.0.2。因为1.0.2是最近的版本,所以在我看来,
#### [如何使用错误证书执行HTTPS请求?](https://bug200.com/post/12122159)
说我想得到https://golang.org编程。当前golang.org(ssl)有一个错误的证书,该证书颁发给*.appspot.com所以当我运行这个时: package main import ( "log" "net/http" ) func main() { _, err := http.Get("https://golang.org/") if
#### [在记事本+中添加用户定义的语言](https://bug200.com/post/12574121)
我正在尝试在记事本+中添加Go编程语言的语法插件。 http://docs.notepad-plus-plus.org/index.php/User_Defined_Language_Files#How_to_install_user_defined_language_files 具有用于此类用户定义语言的存储库。我下载并解压缩了go文件,其中包含一个自述文件、一个用户定义的lang_go.xml
#### [如何阻止Goroutine](https://bug200.com/post/6807590)
我有一个goroutine,它调用一个方法,并在通道上传递返回值: ch := make(chan int, 100) go func(){ for { ch <- do_stuff() } }() 我怎样才能阻止这样的暴行?
#### [Golang的日期/时间比较](https://bug200.com/post/20924303)
在歌朗进行日期比较有什么选择吗?我必须独立地根据日期和时间对数据进行排序。所以我可以允许一个对象发生在一个日期范围内,只要它也发生在一个时间范围内。在这个模型中,我不能简单地选择最早的日期、最早的时间/最晚的日期、最晚的时间和unix()秒来比较它们。我真的很感激你的建议。 最后,我编写了一个时间分析字符串比较模块来检查时间是否在范围内。然而,这并不顺利;我有一些悬而未决的问题。我会把它贴在这里只
#### [go,golang,formatfoat:将浮点数转换为字符串[重复]](https://bug200.com/post/19101419)
这个问题已经有了答案: How to format floating point numbers into a string using Go 1答
#### [从标准输入中读取整数](https://bug200.com/post/3751429)
我怎么用fmt.ScanfGo中的函数从标准输入中获取整数输入? 如果不能用fmt.Scanf,读取单个整数的最佳方法是什么?
#### [如何在C++中使用GO?](https://bug200.com/post/1713214)
在新的Go语言,我怎么称呼C++代码?换句话说,我如何包装我的C++类并在GO中使用它们?
#### [是否可以捕获ctrl+c信号并以“延迟”的方式运行清除功能?](https://bug200.com/post/11268943)
我想捕捉CTRL+C(SIGINT)从控制台发送的信号,打印出部分运行总计。 这在戈兰有可能吗? 注意:当我第一次发布这个问题时,我很困惑CTRL+C存在SIGTERM而不是SIGINT.
#### [如何在运行时检查Go语言中的变量类型](https://bug200.com/post/6996704)
我有几个这样声明的C函数 CURLcode curl_wrapper_easy_setopt_long(CURL* curl, CURLoption option, long param); CURLcode curl_wrapper_easy_setopt_str(CURL* curl, CURLoption option, char* param); 我想把它们作为一个整体暴露出来 func
#### [如何在HTTP GET请求中设置头?](https://bug200.com/post/12864302)
我正在执行一个简单的HTTP GET IN GO: client := &http.Client{} req, _ := http.NewRequest("GET", url, nil) res, _ := client.Do(req) 但是我无法在doc谢谢
#### [如何确定接口的“实际”类型?](https://bug200.com/post/6372474)
我没有找到一个好的资源来使用interface{}类型。例如 package main import "fmt" func weirdFunc(i int) interface{} { if i == 0 { return "zero" } return i } func main() { var i = 5 var w = weirdF
#### [go/golang将日志写入文件](https://bug200.com/post/19965795)
我在和戈兰写日志文件。 我试过几种方法,但都失败了。这就是我所尝试的: func TestLogging(t *testing.T) { if !FileExists("logfile") { CreateFile("logfile") } f, err := os.Open("logfile") if err != nil { t.
#### [如何在戈兰进行文件系统扫描?](https://bug200.com/post/6608873)
我需要编写一个函数,当给定文件夹的路径时, 扫描该文件夹中的根文件。 然后我需要在那个文件夹中显示目录结构。 我知道如何做2(我将使用JStree在浏览器中显示它)。 请帮我写第1部分,比如从哪里开始写这样的 在GO中起作用。
#### [golang中的[]字符串和&hellip;字符串有什么区别?](https://bug200.com/post/12907653)
围棋语言 []string字符串数组 我们也使用...string作为参数 区别是什么? 函数定义: func f(args ...string) {} 我可以这样调用这个函数吗? args := []string{"a", "b"} f(args)
#### [如何获取字符串中的字符数?](https://bug200.com/post/12668681)
如何在go中获取字符串的字符数? 例如,如果我有一个字符串"hello"方法应该返回5. 我看到了len(str)返回字节数而不是字符数,所以len("£")返回2而不是1,因为英镑是用两个UTF-8字节编码的。
#### [如何在golang结构中设置和获取字段?](https://bug200.com/post/11810218)
创建这样的结构后: type Foo struct { name string } func (f Foo) SetName(name string){ f.name=name } func (f Foo) GetName string (){ return f.name } 如何创建foo的新实例并设置和获取名称? 我尝试了以下方法: p:=new(Fo
#### [如何在go中发送post请求?](https://bug200.com/post/24493116)
我正试图提出一个帖子请求,但我做不到。另一边什么也没收到。 这就是它应该如何工作的吗?我知道PostForm但是我想我不能用它,因为它不能用httputil对吧? hc := http.Client{} req, err := http.NewRequest("POST", APIURL, nil) form := url.Values{} form.Add("ln", c.ln) form.A
#### [go中的空值](https://bug200.com/post/4217864)
如何在go中表示“空”值? type Node struct { next *Node data interface{} } 我想说 return &Node{ data: NULL, next: NULL }
#### [在戈兰,有没有一种每隔一段时间做重复性工作的方法?](https://bug200.com/post/16466320)
有没有一种方法可以在go中执行重复的后台任务?我在想Timer.schedule(task, delay, period)在Java中。我知道我可以用Goroutine和Time.sleep()但是我想要一些容易停下来的东西。 这是我得到的,但在我看来很难看。有更干净/更好的方法吗? func oneWay() { var f func() var t *time.Timer
#### [如何在golang中设置http.get()请求的超时?](https://bug200.com/post/16895294)
我在Go中创建了一个URL获取器,并有一个要获取的URL列表。我发送http.Get()请求每个URL并获取其响应。 resp,fetch_err := http.Get(url) 如何为每个GET请求设置自定义超时?(默认时间很长,这会使我的回迁器非常慢。)我希望回迁器有一个大约40-45秒的超时,在此之后它将返回“请求超时”,并转到下一个URL。 我怎样才能做到这一点?
#### [在模板中迭代映射](https://bug200.com/post/21302520)
我正在展示一个健身课程列表(瑜伽、普拉提等)。每种类型的课程都有几个课程,所以我想把所有的瑜伽课程和普拉提课程都分组,等等。 我做这个函数是为了取一个切片并绘制它的地图 func groupClasses(classes []entities.Class) map[string][]entities.Class { classMap := make(map[string][]entitie
#### [sync.waitgroup示例正确吗?](https://bug200.com/post/19208725)
这个例子的用法是sync.WaitGroup对的?它给出了预期的结果,但我不确定wg.Add(4)以及wg.Done(). 一次添加四个goroutine是否有意义wg.Add()? http://play.golang.org/p/ecvYHiie0P package main import ( "fmt" "sync" "time" ) func dosomethi
#### [在GO编程中如何从[]字节转换为int](https://bug200.com/post/11184336)
我需要通过TCP创建一个客户机-服务器示例。在客户端,我读取了2个数字,然后将它们发送到服务器。我面临的问题是我不能从[]byte到int,因为通信只接受类型为的数据[]byte. 有转换的方法吗[]byte到int或者我可以发送int到服务器? 一些示例代码将非常感谢。 谢谢。
#### [在Go中删除地图[键]?](https://bug200.com/post/1736014)
我有一张地图: var sessions = map[string] chan int{} 如何删除sessions[key]?我试过: sessions[key] = nil,false; 那不管用。 更新(2011年11月): 删除映射项的特殊语法将在中删除。Go version 1: Go 1将删除特殊地图分配并引入新的内置功能,delete:delete(m, x)将删除表达式检
#### [将go map转换为json](https://bug200.com/post/24652775)
我试图将我的go映射转换为json字符串,encoding/json封送,但它导致空字符串。 这是我的代码: package main import ( "encoding/json" "fmt" ) type Foo struct { Number int json:"number"我的输出是: Title string json:"title"
#### [如何检查空结构?](https://bug200.com/post/28447297)
我定义了一个结构… type Session struct { playerId string beehive string timestamp time.Time } 有时我会给它分配一个空会话(因为不可能为零) session = Session{}; 然后我要检查,如果它是空的: if session == Session{} { // do stuff
#### [错误“can&39;t load package:package my prog:found packages my prog and main”&rdquo;](https://bug200.com/post/14416275)
在我的路径中,我有这样的东西: /bin/ /pkg/ /src/ /src/my_prog/ /src/my_prog/main.go /src/my_prog/d_interface.go /src/my_prog/d_struct_that_implements_the_interface.go 在main.go我有package main在d_interface.go和d_struct_
#### [建议使用什么方式从Go连接到MySQL?](https://bug200.com/post/11353679)
我正在寻找一个可靠的解决方案从Go连接到MySQL数据库。我在周围见过一些库,但是很难确定完整性和当前维护的不同状态。我没有复杂的需求,但是我想知道人们依赖什么,或者什么是连接到MySQL的最标准的解决方案。
#### [如何找出切片中的元素位置?](https://bug200.com/post/8307478)
如何确定切片中元素的位置? 我需要如下的东西: type intSlice []int func (slice intSlice) pos(value int) int { for p, v := range slice { if (v == value) { return p } } return -1 }
#### [Golang应用程序自动生成版本控制](https://bug200.com/post/11354518)
每次编译Go应用程序时,是否可以自动增加次要版本号? 我想在我的程序中设置一个版本号,带有一个自动增量部分: $ myapp -version MyApp version 0.5.132 0.5是我设置的版本号,132是一个每次编译二进制文件时自动递增的值。 这是可行的吗?
#### [将整数转换为字节数组](https://bug200.com/post/16888357)
我有一个函数,它接收[]byte但我所拥有的是int,进行这种转换的最佳方法是什么? err = a.Write([]byte(myInt)) 我想我可以走很远的路,把它变成一个字符串,然后把它放进字节,但听起来很难看,我想还有更好的方法可以做到。
#### [go中的toString()函数](https://bug200.com/post/13247644)
这个strings.Join函数只接受字符串切片: s := []string{"foo", "bar", "baz"} fmt.Println(strings.Join(s, ", ")) 但如果能够传递实现ToString()功能。 type ToStringConverter interface { ToString() string } 在Go中是否有类似的东西,或者我需要装饰
#### [为什么我不能用golang中的“copy()”复制一个切片?](https://bug200.com/post/30182538)
我需要在Go中制作一份切片的副本,并阅读文档copy功能由我决定。 copy内置函数将元素从源切片复制到 目标切片。(在特殊情况下,它还将从 字符串到字节片。)源和目标可能重叠。 copy返回复制的元素数,这是 长度(SRC)和长度(DST)。 但当我这样做 arr := []int{1, 2, 3} tmp := []int{} copy(tmp, arr) fmt.Println(tmp)
#### [gobin未设置:无法运行go安装](https://bug200.com/post/25216765)
我正在尝试为main.go文件安装自定义包。但是,当我跑步时 go install custom.go 我有这个错误 go install: no install location for .go files listed on command line (GOBIN not set) 我如何设置戈宾?
#### [如何运行主包中包含多个文件的项目?](https://bug200.com/post/28081486)
我的主包中目前只有一个文件,名为main.go. 我如何拆分main.go在多个文件中,不创建单独的包,因为代码不可重用。 我想要这样的目录结构: $ ls foo main.go bar.go bar.go package main import "fmt" func Bar() { fmt.Println("Bar") } 然后在main.go package main f
#### [歌朗:如何读取文本文件?[复制品]](https://bug200.com/post/36111777)
这个问题已经有了答案: How can I read a whole file into a string variable 4答
#### [遍历go中结构的字段](https://bug200.com/post/18926303)
基本上,迭代struct是这样的: type Example struct { a_number uint32 a_string string } //... r := &Example{(2 << 31) - 1, "...."}: for _, d:= range []interface{}{ r.a_number, r.a_string, } {
有疑问加站长微信联系(非本文作者))