关于 go 的最热门问题合集,有技术问题,上 bug200.com - [如何在正则表达式中跨多行匹配任何字符?](https://bug200/post/159118) 例如,这个regex (.*)<FooBar> 将匹配: abcde<FooBar> 但是如何让它跨多行匹配呢? abcde fghij<FooBar> - [将字节数组转换为字符串的最佳方法是什么?](https://bug200/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/post/2050391) 我知道我可以在地图M上迭代, for k, v := range m { ... } 寻找一把钥匙,但是有没有一种更有效的方法来测试一把钥匙在地图上的存在?谢谢。我找不到答案language spec. - [如何将字符串分配给字节数组](https://bug200/post/8032170) 我要将字符串分配给字节数组: var arr [20]byte str := "abc" for k, v := range []byte(str) { arr[k] = byte(v) } 有其他方法吗? - [Go中有foreach循环吗?](https://bug200/post/7782411) 有没有foreach用Go语言构建?我可以使用for? - [如何在go中将int值转换为字符串?](https://bug200/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/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/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/post/8757389) 我找不到file.ReadLine功能在Go中。我可以想出如何快速地写一封信,但只是想知道我是否忽略了这里的一些东西。如何逐行读取文件? - [如何使用go读/写文件?](https://bug200/post/1821811) 我一直在试着自己去学习,但我一直在尝试读写普通文件。 我可以走到inFile, _ := os.Open(INFILE, 0, 0),但实际上获取文件的内容是没有意义的,因为读取函数需要[]byte作为参数。 func (file *File) Read(b []byte) (n int, err Error) - [遍历映射的所有键](https://bug200/post/1841443) 有没有办法在Go语言地图中获得所有键的列表?元素的数量由len()但是如果我有这样的地图: m := map[string]string{ "key1":"val1", "key2":"val2" }; 如何迭代所有键? - [如何在go中编写多行字符串?](https://bug200/post/7933460) go是否有类似于python的多行字符串的内容: """line 1 line 2 line 3""" 如果不是,写跨越多行的字符串的首选方法是什么? - [可选参数?](https://bug200/post/2032149) 可以使用可选参数吗?或者我可以只定义两个具有相同名称和不同数量参数的函数吗? - [设置Go字符串的格式而不打印?](https://bug200/post/11123865) 有没有一种简单的方法来格式化Go中的字符串而不打印该字符串? 我能做到: bar := "bar" fmt.Printf("foo: %s", bar) 但我希望返回格式化的字符串,而不是打印,这样我可以进一步操作它。 我也可以做一些类似的事情: s := "foo: " + bar 但是,当格式字符串很复杂时,这就变得难以读取;当其中一个或多个部分不是字符串时,这就变得很麻烦,必须先进行转换 - [没有gopath如何导入本地包?](https://bug200/post/17539407) 我已经用过GOPATH但就目前这个问题而言,我所面临的一切都无济于事。我希望能够创建特定于项目的包: myproject/ ├── binary1.go ├── binary2.go ├── package1.go └── package2.go 我试过多种方法,但我怎么才能package1.go在工作中binary1.go或binary2.go等等? 例如,我希望能够import "packa - [如何从其PID中获取流程详细信息](https://bug200/post/9378021) 我维护了一个当前在我的系统(Linux)上运行的进程的pid列表,如果我能从这个pid中获得进程的详细信息,我会在golang中访问syscall.getrusage(),但是我没有得到想要的结果。 有人有相关的想法吗 - [如何在Go[关闭]中处理配置](https://bug200/post/16465705) 我是新来的at-go编程人员,我想知道:处理go程序配置参数的首选方法是什么性质文件或伊尼其他情况下的文件? - [如何在戈兰使用定制包?](https://bug200/post/15049903) 我正在尝试在Go中创建和使用自定义包。这可能是很明显的事情,但我找不到很多关于这方面的信息。基本上,我在同一个文件夹中有这两个文件: 百万富翁 package mylib type SomeType struct { } 主走 package main import ( "mylib" ) func main() { } 当我尝试go run main.go,我得到这个错误: - [在go中测试空字符串的最佳方法是什么?](https://bug200/post/18594330) 对于测试非空字符串(在go中),哪种方法最好(更像idomatic)? if len(mystring) > 0 { } 或: if mystring != "" { } 或者别的什么? - [从地图中获取关键点的切片](https://bug200/post/21362950) 在Go中,有没有更简单/更好的方法从地图中获取一个关键点? 目前我正在迭代映射并将键复制到一个切片: i := 0 keys := make([]int, len(mymap)) for k := range mymap { keys[i] = k i++ } - [在go中将字符串转换为整型?](https://bug200/post/4278430) 我正在尝试转换从返回的字符串flag.Arg(n)对int. Go中的惯用方法是什么? - [如何获取当前运行文件的目录?](https://bug200/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/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/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/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/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/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/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/post/12905426) 蟒蛇http.server(或simplehttpserver for python 2)是从命令行服务当前目录内容的一种很好的方法: python -m http.server 然而,就网络服务器而言,这是非常缓慢的… 它的行为就像是单线程的,并且在使用RequireJS加载JavaScriptAMD模块时偶尔会导致超时错误。加载一个没有图像的简单页面可能需要5到10秒。 有什么比这更方便的选 - [Go中无检测](https://bug200/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/post/5885486) 在go中获取当前时间戳并转换为字符串的最佳方法是什么?我需要日期和时间,例如,YYYYMMDDHHMMSS格式。 - [将文本文件读取到字符串数组中(并写入)](https://bug200/post/5884154) 在字符串数组中读(写)一个文本文件的能力是我认为相当普遍的要求。当从一种语言开始时,它也非常有用,它消除了最初访问数据库的需要。戈兰有吗?例如 func ReadLines(sFileName string, iMinLines int) ([]string, bool) { 和 func WriteLines(saBuff[]string, sFilename string) (bool) { - [如何在Ubuntu Precise中安装Go的当前版本](https://bug200/post/17480044) 运行sudo apt-get install golang-stable,我得到Go版本go1.0.3. 有什么安装方法吗go1.1.1? - [golang将项目附加到切片](https://bug200/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/post/15407719) 我正在使用http包从开始处理后请求。如何从Request对象?我从官方文件中找不到答案。 - [在go中列出目录](https://bug200/post/14668850) 我一直在试图找出如何在Go中简单地列出单个目录中的文件和文件夹。 我找到了filepath.Walk但它会自动进入子目录,我不想这样。我所有的其他搜索都没有找到更好的结果。 我确信这个功能是存在的,但是很难找到。如果有人知道我该去哪里,请告诉我。谢谢。 - [将接口转换为int](https://bug200/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/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/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/post/16935965) 我的包测试用例分散在多个文件中,如果我运行go test <package_name>它运行包中的所有测试用例。 不过,没有必要运行所有这些程序。有没有方法为指定文件go test运行,以便它只运行文件中定义的测试用例? - [如何编译由多个文件组成的GO程序?](https://bug200/post/10838469) 所以我有一个由三个文件组成的小程序,它们都属于同一个包(main),但是当我执行“go build main.go”时,构建不会成功。当它只是一个文件(main.go)时,一切都正常。现在我花了点力气来分离代码,看起来编译器找不到从main.go中取出并放入这两个其他文件中的内容(它们与main.go位于同一目录中)。导致“未定义的”类型“错误。 我读了一些关于设置gopath变量的内容,所以我尝 - [如何将持续时间乘以整数?](https://bug200/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/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/post/8022389) 如何在go中将float64转换为int?我知道strconv包可以用于在字符串之间转换任何内容,但不能在非字符串的数据类型之间转换。我知道我可以用fmt.Sprintf将任何内容转换为字符串,然后strconv到我需要的数据类型,但是这个额外的转换看起来有点笨拙——有更好的方法吗? - [歌朗随机数发生器如何正确播种](https://bug200/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/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/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/post/12655464) 在Java中,我可以做一些类似的事情。derp(new Runnable { public void run () { /* run this sometime later */ } })稍后在方法中“运行”代码。处理(匿名的内部类)是一种痛苦,但它是可以做到的。 Go是否有一些可以方便作为参数传入函数/回调的功能? - [在go中提取子字符串](https://bug200/post/12311033) 我正在尝试从控制台读取整行(包括空白),然后处理它。使用bufio.readstring,新行字符与输入一起读取,因此我想出了以下代码来修剪新行字符: input,_:=src.ReadString('\n') inputFmt:=input[0:len(input)-2]+"" //Need to manually add end of string 有没有更惯用的方法?也就是说,是否已经有一 - [声明常量数组](https://bug200/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/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/post/21950244) Golang的范围可以迭代地图和切片,但是我想知道是否有一种方法可以迭代一系列的数字,类似于这样 for i := range [1..10] { fmt.Println(i) } 或者有没有一种方法可以像 ruby 那样表示go中的整数范围? - [如何将int改为int64?](https://bug200/post/13137365) 我试图在go中将一个整数转换成integer64,但我运气不好。有人知道一个简单的方法吗? - [从结构中移除字段或将其隐藏在JSON响应中](https://bug200/post/17306358) 我在Go中创建了一个API,在被调用时执行查询,创建一个结构实例,然后将该结构编码为JSON,然后再发送回调用方。现在我想允许调用者通过传入“fields”get参数来选择他们想要返回的特定字段。 这意味着根据字段值,我的结构将更改。是否有任何方法可以从结构中移除字段?或者至少在JSON响应中动态隐藏它们?(注意:有时我有空值,所以json omitempty标记在这里不起作用)如果这两者都不可能 - [字符串的零是什么?](https://bug200/post/12703243) func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key 文件上说: new key创建一个新键。kind不能为空。一个或两个 StringID和IntId必须零. 如果两者都为零,则键 返回不完整。父级必须是完整键或零。 字符串的零是什么? 我试过0和nil我有错误,比如: - [如何将整个文件读取为字符串变量](https://bug200/post/13514184) 我有很多小文件,我不想一行一行地读。 Go中是否有将整个文件读取为字符串变量的函数? - [无法加载package:package.:没有可构建的go源文件](https://bug200/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/post/19038598) 有人知道在Go中漂亮打印JSON输出的简单方法吗? 股票http://golang.org/pkg/encoding/json/包似乎不包含此功能(编辑:是的,请看接受的答案)而且快速的谷歌不会发现任何明显的东西。 我要找的用途都是漂亮的打印结果json.Marshal并且只需从任何地方格式化一个充满JSON的字符串,这样就更容易出于调试目的进行读取。 - [在go中对多个返回值执行转换/类型断言的惯用方法](https://bug200/post/11403050) 在go中转换多个返回值的惯用方法是什么? 你能在一行中完成它吗,或者你需要使用临时变量,比如我在下面的例子中所做的? package main import "fmt" func oneRet() interface{} { return "Hello" } func twoRet() (interface{}, error) { return "Hejsan", nil } - [你怎么清除围棋中的一片?](https://bug200/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/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/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/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/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/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/post/6807590) 我有一个goroutine,它调用一个方法,并在通道上传递返回值: ch := make(chan int, 100) go func(){ for { ch <- do_stuff() } }() 我怎样才能阻止这样的暴行? - [Golang的日期/时间比较](https://bug200/post/20924303) 在歌朗进行日期比较有什么选择吗?我必须独立地根据日期和时间对数据进行排序。所以我可以允许一个对象发生在一个日期范围内,只要它也发生在一个时间范围内。在这个模型中,我不能简单地选择最早的日期、最早的时间/最晚的日期、最晚的时间和unix()秒来比较它们。我真的很感激你的建议。 最后,我编写了一个时间分析字符串比较模块来检查时间是否在范围内。然而,这并不顺利;我有一些悬而未决的问题。我会把它贴在这里只 - [go,golang,formatfoat:将浮点数转换为字符串[重复]](https://bug200/post/19101419) 这个问题已经有了答案: How to format floating point numbers into a string using Go 1答 - [从标准输入中读取整数](https://bug200/post/3751429) 我怎么用fmt.ScanfGo中的函数从标准输入中获取整数输入? 如果不能用fmt.Scanf,读取单个整数的最佳方法是什么? - [如何在C++中使用GO?](https://bug200/post/1713214) 在新的Go语言,我怎么称呼C++代码?换句话说,我如何包装我的C++类并在GO中使用它们? - [是否可以捕获ctrl+c信号并以“延迟”的方式运行清除功能?](https://bug200/post/11268943) 我想捕捉CTRL+C(SIGINT)从控制台发送的信号,打印出部分运行总计。 这在戈兰有可能吗? 注意:当我第一次发布这个问题时,我很困惑CTRL+C存在SIGTERM而不是SIGINT. - [如何在运行时检查Go语言中的变量类型](https://bug200/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/post/12864302) 我正在执行一个简单的HTTP GET IN GO: client := &http.Client{} req, _ := http.NewRequest("GET", url, nil) res, _ := client.Do(req) 但是我无法在doc谢谢 - [如何确定接口的“实际”类型?](https://bug200/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/post/19965795) 我在和戈兰写日志文件。 我试过几种方法,但都失败了。这就是我所尝试的: func TestLogging(t *testing.T) { if !FileExists("logfile") { CreateFile("logfile") } f, err := os.Open("logfile") if err != nil { t. - [如何在戈兰进行文件系统扫描?](https://bug200/post/6608873) 我需要编写一个函数,当给定文件夹的路径时, 扫描该文件夹中的根文件。 然后我需要在那个文件夹中显示目录结构。 我知道如何做2(我将使用JStree在浏览器中显示它)。 请帮我写第1部分,比如从哪里开始写这样的 在GO中起作用。 - [golang中的[]字符串和&hellip;字符串有什么区别?](https://bug200/post/12907653) 围棋语言 []string字符串数组 我们也使用...string作为参数 区别是什么? 函数定义: func f(args ...string) {} 我可以这样调用这个函数吗? args := []string{"a", "b"} f(args) - [如何获取字符串中的字符数?](https://bug200/post/12668681) 如何在go中获取字符串的字符数? 例如,如果我有一个字符串"hello"方法应该返回5. 我看到了len(str)返回字节数而不是字符数,所以len("£")返回2而不是1,因为英镑是用两个UTF-8字节编码的。 - [如何在golang结构中设置和获取字段?](https://bug200/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/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/post/4217864) 如何在go中表示“空”值? type Node struct { next *Node data interface{} } 我想说 return &Node{ data: NULL, next: NULL } - [在戈兰,有没有一种每隔一段时间做重复性工作的方法?](https://bug200/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/post/16895294) 我在Go中创建了一个URL获取器,并有一个要获取的URL列表。我发送http.Get()请求每个URL并获取其响应。 resp,fetch_err := http.Get(url) 如何为每个GET请求设置自定义超时?(默认时间很长,这会使我的回迁器非常慢。)我希望回迁器有一个大约40-45秒的超时,在此之后它将返回“请求超时”,并转到下一个URL。 我怎样才能做到这一点? - [在模板中迭代映射](https://bug200/post/21302520) 我正在展示一个健身课程列表(瑜伽、普拉提等)。每种类型的课程都有几个课程,所以我想把所有的瑜伽课程和普拉提课程都分组,等等。 我做这个函数是为了取一个切片并绘制它的地图 func groupClasses(classes []entities.Class) map[string][]entities.Class { classMap := make(map[string][]entitie - [sync.waitgroup示例正确吗?](https://bug200/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/post/11184336) 我需要通过TCP创建一个客户机-服务器示例。在客户端,我读取了2个数字,然后将它们发送到服务器。我面临的问题是我不能从[]byte到int,因为通信只接受类型为的数据[]byte. 有转换的方法吗[]byte到int或者我可以发送int到服务器? 一些示例代码将非常感谢。 谢谢。 - [在Go中删除地图[键]?](https://bug200/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/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/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/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/post/11353679) 我正在寻找一个可靠的解决方案从Go连接到 MySQL 数据库。我在周围见过一些库,但是很难确定完整性和当前维护的不同状态。我没有复杂的需求,但是我想知道人们依赖什么,或者什么是连接到MySQL的最标准的解决方案。 - [如何找出切片中的元素位置?](https://bug200/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/post/11354518) 每次编译Go应用程序时,是否可以自动增加次要版本号? 我想在我的程序中设置一个版本号,带有一个自动增量部分: $ myapp -version MyApp version 0.5.132 0.5是我设置的版本号,132是一个每次编译二进制文件时自动递增的值。 这是可行的吗? - [将整数转换为字节数组](https://bug200/post/16888357) 我有一个函数,它接收[]byte但我所拥有的是int,进行这种转换的最佳方法是什么? err = a.Write([]byte(myInt)) 我想我可以走很远的路,把它变成一个字符串,然后把它放进字节,但听起来很难看,我想还有更好的方法可以做到。 - [go中的toString()函数](https://bug200/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/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/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/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/post/36111777) 这个问题已经有了答案: How can I read a whole file into a string variable 4答 - [遍历go中结构的字段](https://bug200/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, } {
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- acme.sh 续期问题(路径问题)
- 缓存的一些问题和一些加密算法【缓存问题】
- 如何把设计问题转化为数学问题(方法论)
- 推荐系统中的冷启动问题和探索利用问题
- GraphQL 教程(六)—— N+1问题和缓存等问题
- Golang 并发问题(四)之单核上的并发问题
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Parsing Techniques
Dick Grune、Ceriel J.H. Jacobs / Springer / 2010-2-12 / USD 109.00
This second edition of Grune and Jacobs' brilliant work presents new developments and discoveries that have been made in the field. Parsing, also referred to as syntax analysis, has been and continues......一起来看看 《Parsing Techniques》 这本书的介绍吧!