Tag:

Golang的import声明前的下划线是什么意思?

我在GitHub看到了来自sqlite3这个例子 : import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3" "log" "os" ) 似乎无法find导入语句前面的下划线。

不能将数据(键入接口{})转换为string:需要types断言

我很新的去,我正在玩这个通知包。 起初,我有这样的代码: func doit(w http.ResponseWriter, r *http.Request) { notify.Post("my_event", "Hello World!") fmt.Fprint(w, "+OK") } 我想追加换行到Hello World! 但不是在函数doit上面,因为这将是相当微不足道的,但在handler之后如下所示: func handler(w http.ResponseWriter, r *http.Request) { myEventChan := make(chan interface{}) notify.Start("my_event", myEventChan) data := <-myEventChan fmt.Fprint(w, data + "\n") } go run : $ go run lp.go # command-line-arguments ./lp.go:15: invalid operation: data + "\n" (mismatched types interface […]

Golang制作web应用程序configuration

对于那些在生产中运行Go后端的人: 运行Go Web应用程序的堆栈/configuration是什么? 除了使用标准库net / http包保持服务器运行的人之外,我对这个主题还没有多less看到。 我使用Nginx读取Go请求到Go服务器 – nginx 这对我来说似乎有点脆弱。 例如,如果计算机重新启动(不需要额外的configuration脚本),服务器将不会自动重新启动。 有一个更坚实的生产设置? 除了我的意图之外 – 我正在计划为我的下一个项目开发一个Gofunction的REST后端服务器,并且希望确保Go能够在我投入太多资金之前实时启动项目。

在Go中使用JSON Marshal的小写JSON键名

我希望使用"encoding/json"包来编组在我的应用程序的一个导入的包中声明的结构。 例如。: type T struct { Foo int } 因为它被导入,结构中的所有可用(导出)字段都以大写字母开头。 但我希望有小写键名称: out, err := json.Marshal(&T{Foo: 42}) 会导致 { “富”:42} 但我希望得到 { “foo” 的:42} 是否有可能通过一些简单的方式来解决问题?

C的三元运算符是什么?

在C / C ++(以及该族的许多语言)中,根据条件声明和初始化variables的常见习惯用法使用三元条件运算符: int index = val > 0 ? val : -val Go没有条件运算符。 实现与上面相同的一段代码的最习惯的方式是什么? 我来到以下的解决scheme,但似乎很详细 var index int if val > 0 { index = val } else { index = -val } 有什么更好的吗?

是否有可能以“延迟”方式捕获Ctrl + C信号并运行清理function?

我想捕获从控制台发送的Ctrl + C ( SIGINT )信号,并打印出部分运行总数。 Golang可能吗? 注意:当我第一次发布这个问题时,我很困惑Ctrl + C是SIGTERM而不是SIGINT 。

在Go中将string转换为整数types?

我试图将从flag.Arg(n)返回的string转换为一个int 。 Go的惯用方法是什么?

如何在Golang中find一个对象的types?

如何在Golang中find对象的types? 在Python中,我只是使用typeof来获取对象的types。 同样在Go中,有没有一种方法来实现? 这是我从中迭代的容器 for e := dlist.Front(); e != nil; e = e.Next() { lines := e.Value fmt.Printf(reflect.TypeOf(lines)) } 在这种情况下,我无法获取对象行的types,这是一个string数组。

检查两个切片的相等性

我如何检查两片是否相等?

Golang:格式化string而不打印?

有没有一种简单的方法来格式化一个string在没有打印string? 我可以: bar := "bar" fmt.Printf("foo: %s", bar) 但我想要格式化的string返回而不是打印,所以我可以进一步操纵它。 我也可以做这样的事情: s := "foo: " + bar 但是,当格式string很复杂时,这变得难以阅读,并且当一个或多个部分不是string并且必须首先被转换时 i := 25 s := "foo: " + strconv.Itoa(i) 我对Go非常陌生 – 我的背景是Ruby,在这里很简单。 有一个更简单的方法来做到这一点?