Questions tagged «go»

Go是一种开源编程语言。它是静态类型的,具有从C松散派生的语法,添加了自动内存管理,类型安全性,一些动态类型输入功能,其他内置类型,例如可变长度数组(称为slices)和键值映射,以及大型标准库。

4
将数组作为参数解包
因此,在Python和Ruby中,使用splat运算符(*)可以将数组解压缩为参数。在Javascript中,有.apply()函数。Go中有没有一种将数组/切片作为函数参数解包的方法?任何资源,这也将是巨大的! 与此类似: func my_func(a, b int) (int) { return a + b } func main() { arr := []int{2,4} sum := my_func(arr) } 如果我犯了语法错误或各种错误,我深表歉意。我是新手。

5
将time.Time转换为字符串
我正在尝试将数据库中的一些值添加到[]stringGo中。其中一些是时间戳。 我得到错误: 不能在数组元素中使用U.Created_date(类型time.Time)作为类型字符串 我可以转换time.Time成string吗? type UsersSession struct { Userid int Timestamp time.Time Created_date time.Time } type Users struct { Name string Email string Country string Created_date time.Time Id int Hash string IP string } -- var usersArray = [][]string{} rows, err := db.Query("SELECT u.id, u.hash, u.name, u.email, u.country, u.IP, u.created_date, …
103 string  time  go 

3
在Go中创建2D切片的简洁方法是什么?
我正在通过“围棋之旅”学习围棋。其中的一项练习要求我创建包含的dy行和dx列的2D切片uint8。我目前有效的方法是: a:= make([][]uint8, dy) // initialize a slice of dy slices for i:=0;i<dy;i++ { a[i] = make([]uint8, dx) // initialize a slice of dx unit8 in each of dy slices } 我认为遍历每个切片以初始化它太冗长。而且,如果切片具有更大的尺寸,则代码将变得笨拙。在Go中,有没有一种简便的方法来初始化2D(或n维)切片?
103 go  slice 

2
如何在Go中执行文字* int64?
我有一个带有*int64字段的结构类型。 type SomeType struct { SomeField *int64 } 在代码的某个时刻,我想声明一个字面值(例如,当我知道值应该为0或指向0时,您就知道我的意思了) instance := SomeType{ SomeField: &0, } ...除非这不起作用 ./main.go:xx: cannot use &0 (type *int) as type *int64 in field value 所以我尝试这个 instance := SomeType{ SomeField: &int64(0), } ...但是这也不起作用 ./main.go:xx: cannot take the address of int64(0) 我该怎么做呢?我唯一能想到的解决方案是使用占位符变量 var placeholder int64 placeholder = 0 …
103 pointers  go  struct  literals 

3
Go方法的默认值
有没有一种方法可以在Go函数中指定默认值?我正在尝试在文档中找到它,但是找不到任何指定这是可能的东西。 func SaySomething(i string = "Hello")(string){ ... }
103 go 

6
如何停止goroutine
我有一个goroutine,它调用一个方法,并在通道上传递返回的值: ch := make(chan int, 100) go func(){ for { ch <- do_stuff() } }() 如何停止这种goroutine?
102 go  goroutine  channels 

4
正确的软件包命名以使用Go语言进行测试
我在Go中看到了几种不同的测试包命名策略,并想知道每种策略的优缺点以及应该使用哪种优缺点。 策略1: 文件名:github.com/user/myfunc.go package myfunc 测试文件名称:github.com/user/myfunc_test.go package myfunc 有关示例,请参见bzip2。 策略2: 文件名:github.com/user/myfunc.go package myfunc 测试文件名称:github.com/user/myfunc_test.go package myfunc_test import ( "github.com/user/myfunc" ) 有关示例,请参见wire。 策略3: 文件名:github.com/user/myfunc.go package myfunc 测试文件名称:github.com/user/myfunc_test.go package myfunc_test import ( . "myfunc" ) 请参阅字符串作为示例。 Go标准库似乎混合使用了策略1和策略2。我应该使用这三种策略中的哪一种?package *_test在我的测试包后面增加了一个痛苦,因为这意味着我无法测试我的包私有方法,但是也许有一个我不知道的隐藏优势?
102 unit-testing  go 


6
与brew一起安装go,并运行getour
我一直在关注http://tour.golang.org/,直到执行第三步为止,即告诉您可以在系统上安装gotour。之后,我通过以下方式通过brew安装了go语言: brew install hg brew install go 然后我通过以下方式下载了getour: go get code.google.com/p/go-tour/gotour 当我尝试启动getour时,它无法识别该命令: $ gotour -bash: gotour: command not found 和 $ go gotour 和 $ ./gotour 所以我试图去看去的路,那是空的, echo $GOPATH 所以我定义了GOPATH: GOPATH=/usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/ export GOPATH 现在我可以通过运行 ./gotour 但是我对自己的出行环境不安全..我不是应该能够通过 go run gotour 或仅通过键入(如本网站上的http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/中所述): gotour 我想知道自从对Go编程语言不熟悉以来,我是否在正确地做事。
101 macos  install  go  homebrew 

2
如何在Go中获取函数名称?
给定一个函数,可以得到它的名字吗?说: func foo() { } func GetFunctionName(i interface{}) string { // ... } func main() { // Will print "name: foo" fmt.Println("name:", GetFunctionName(foo)) } 有人告诉我runtime.FuncForPC会有所帮助,但我不明白如何使用它。

4
运行时错误:分配给nil映射中的条目
我正在尝试生成地图,然后将其转换为如下所示的yaml文件: uid : kasi: cn: Chaithra street: fkmp nandan: cn: Chaithra street: fkmp remya: cn: Chaithra street: fkmp 我想我在创建地图时缺少重要的东西。我的代码如下。 package main import ( "fmt" "gopkg.in/yaml.v2" ) type T struct { cn string street string } func main() { names := []string{"kasi", "remya", "nandan"} m := make(map[string]map[string]T, len(names)) for _, name …
101 map  go  yaml 

5
服务器上未启用SSL
尝试使用go与Postgres数据库进行通信,准备如下语句: var stmt *sql.Stmt var err error stmt, err = db.Prepare(selectStatement) if err != nil { fmt.Printf("db.Prepare error: %v\n",err) return err } 引发以下错误: db.Prepare error: pq: SSL is not enabled on the server 有什么办法吗? 如果需要,我可以添加更多信息。
101 go 

4
在Go程序中捆绑静态资源的最佳方法是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 去年关闭。 改善这个问题 我正在Go中开发一个小型Web应用程序,该应用程序旨在用作开发人员机器上的工具,以帮助调试其应用程序/ Web服务。该程序的界面是一个网页,不仅包含HTML,而且还包含一些JavaScript(用于功能),图像和CSS(用于样式)。我正在计划对该应用程序进行开源采购,因此用户应该只需能够运行Makefile,所有资源都将存放在需要存放的地方。但是,我也希望能够简单地分发具有尽可能少的文件/依赖关系的可执行文件。是否有将HTML / CSS / JS与可执行文件捆绑在一起的好方法,因此用户只需要下载并担心一个文件? 现在,在我的应用程序中,提供静态文件看起来像这样: // called via http.ListenAndServe func switchboard(w http.ResponseWriter, r *http.Request) { // snipped dynamic routing... // look for static resource uri := r.URL.RequestURI() if fp, err := os.Open("static" + uri); err == nil { defer fp.Close() staticHandler(w, r, fp) return …
100 go 

5
将文本文件读入字符串数组(并写入)
我认为能够将文本文件读入和写出字符串数组的能力是相当普遍的要求。从一种语言开始消除最初访问数据库的需求时,它也非常有用。Golang中是否存在? 例如 func ReadLines(sFileName string, iMinLines int) ([]string, bool) { 和 func WriteLines(saBuff[]string, sFilename string) (bool) { 我宁愿使用现有的而不是重复的。
100 go 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.