Questions tagged «go»

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

3
如何将一串字符串连接成单个字符串?
package main import ( "fmt" "strings" ) func main() { reg := [...]string {"a","b","c"} fmt.Println(strings.Join(reg,",")) } 给我一个错误: prog.go:10:不能在字符串的参数中使用reg(类型[3] string)作为类型[] string。 有没有比循环和添加到var更直接/更好的方法?
129 go  slice 

6
如何使用“测试”包在Go测试中打印?
我正在Go中运行一个带有打印内容的语句的测试(即用于测试的调试),但是它不打印任何内容。 func TestPrintSomething(t *testing.T) { fmt.Println("Say hi") } 当我对此文件运行go test时,输出为: ok command-line-arguments 0.004s 据我所知,真正使其打印的唯一方法是通过t.Error()进行打印,如下所示: func TestPrintSomethingAgain(t *testing.T) { t.Error("Say hi") } 哪个输出: Say hi --- FAIL: TestPrintSomethingAgain (0.00 seconds) foo_test.go:35: Say hi FAIL FAIL command-line-arguments 0.003s gom: exit status 1 我已经用Google搜索并浏览了手册,但没有找到任何东西。
129 testing  go 

3
json.Marshal(struct)返回“ {}”
type TestObject struct { kind string `json:"kind"` id string `json:"id, omitempty"` name string `json:"name"` email string `json:"email"` } func TestCreateSingleItemResponse(t *testing.T) { testObject := new(TestObject) testObject.kind = "TestObject" testObject.id = "f73h5jf8" testObject.name = "Yuri Gagarin" testObject.email = "Yuri.Gagarin@Vostok.com" fmt.Println(testObject) b, err := json.Marshal(testObject) if err != nil { fmt.Println(err) } …
128 json  go  marshalling 

6
如何使用错误的证书执行https请求?
说我想以https://golang.org编程方式获取。当前,golang.org(ssl)的证书不正确,*.appspot.com因此我将其签发给So: package main import ( "log" "net/http" ) func main() { _, err := http.Get("https://golang.org/") if err != nil { log.Fatal(err) } } 我得到了(如我所料) Get https://golang.org/: certificate is valid for *.appspot.com, *.*.appspot.com, appspot.com, not golang.org 现在,我想自己信任该证书(想象一个可以颁发指纹的自我发行的证书,等等):如何提出请求并验证/信任该证书? 我可能需要使用openssl下载证书,将其加载到我的文件中并填写tls.Configstruct!?。
128 ssl  https  go 

5
用(任意)字段名称对结构数组进行简单排序的最短方法是什么?
我只是有一个问题,我有一系列的结构,例如 package main import "log" type Planet struct { Name string `json:"name"` Aphelion float64 `json:"aphelion"` // in million km Perihelion float64 `json:"perihelion"` // in million km Axis int64 `json:"Axis"` // in km Radius float64 `json:"radius"` } func main() { var mars = new(Planet) mars.Name = "Mars" mars.Aphelion = 249.2 mars.Perihelion …
128 sorting  go 

4
将整数转换为浮点数
如何将整数值转换为float64类型? 我试过了 float(integer_value) 但这是行不通的。而且在Golang.org上找不到任何可以做到这一点的软件包 如何float64从整数值中获取值?
127 go 

3
Go语言是否具有函数/方法重载?
我正在将C库移植到Go。AC函数(带有varargs)的定义如下: curl_easy_setopt(CURL *curl, CURLoption option, ...); 因此,我创建了包装器C函数: curl_wrapper_easy_setopt_str(CURL *curl, CURLoption option, char* param); curl_wrapper_easy_setopt_long(CURL *curl, CURLoption option, long param); 如果我在Go中这样定义函数: func (e *Easy)SetOption(option Option, param string) { e.code = Code(C.curl_wrapper_easy_setopt_str(e.curl, C.CURLoption(option), C.CString(param))) } func (e *Easy)SetOption(option Option, param long) { e.code = Code(C.curl_wrapper_easy_setopt_long(e.curl, C.CURLoption(option), C.long(param))) } Go编译器抱怨: *Easy·SetOption redeclared in …
127 go 

1
我如何查看在“ go get”安装中失败的内部编译命令?
我正在提取并安装具有依赖项的软件包,并且编译失败,在这种情况下,找不到文件magic.h。如何查看编译命令和标志是什么?该-v选项无济于事。(我不想要从哪里获得magic.h的想法,这只是一个例子。) $ go get -u github.com/presbrey/magicmime # github.com/presbrey/magicmime ../../../src/github.com/presbrey/magicmime/magicmime.go:20:11: fatal error: 'magic.h' file not found #include <magic.h> 例如,我如何找到它在哪里寻找包含文件,它到底在编译什么源?(在这种情况下,我看到的源文件$GO_PATH/src已将其#include注释掉,并且/usr/local/include/match.h仍然存在。)
126 go 

5
为什么Go中没有泛型?
免责声明:我现在只和Go玩了一天,所以我很有可能错过了很多。 有谁知道为什么Go中没有对泛型/模板/ whatsInAName的真正支持?因此,有一个通用的map,但这是由编译器提供的,而Go程序员不能编写自己的实现。关于如何使Go尽可能正交的所有讨论,为什么我可以使用通用类型而不创建新类型? 尤其是在函数式编程方面,有lambda甚至闭包,但是在缺少泛型的静态类型系统中,我该如何编写泛型高阶函数,如filter(predicate, list)?好的,可以通过interface{}牺牲类型安全性来完成链接列表等。 由于在SO / Google上进行的快速搜索没有发现任何见解,因此,仿制药(如果有的话)似乎会在事后添加到Go中。我相信Thompson会比Java员工做得更好,但是为什么要排除泛型呢?还是他们已经计划并且尚未实施?

6
如何将unix时间戳解析为time.Time
我正在尝试解析Unix 时间戳,但超出范围错误。这对我来说真的没有意义,因为布局正确(如Go文档中所示): package main import "fmt" import "time" func main() { tm, err := time.Parse("1136239445", "1405544146") if err != nil{ panic(err) } fmt.Println(tm) } 操场
126 go  time  unix-timestamp 

3
如何在Go中清除切片?
在Go中清除切片的适当方法是什么? 这是我在go论坛中找到的内容: // test.go package main import ( "fmt" ) func main() { letters := []string{"a", "b", "c", "d"} fmt.Println(cap(letters)) fmt.Println(len(letters)) // clear the slice letters = letters[:0] fmt.Println(cap(letters)) fmt.Println(len(letters)) } 这样对吗? 为了明确起见,清除了缓冲区,以便可以重用它。 一个示例是bytes包中的Buffer.Truncate函数。 注意,Reset只是调用Truncate(0)。因此看来,在这种情况下,第70行将进行评估:b.buf = b.buf [0:0] http://golang.org/src/pkg/bytes/buffer.go // Truncate discards all but the first n unread bytes from …
125 arrays  go  slice 

5
如何声明常数图
我试图在Go中声明为constant,但是它抛出一个错误。有人可以在Go中声明常量的语法帮助我吗? 这是我的代码: const romanNumeralDict map[int]string = { 1000: "M", 900 : "CM", 500 : "D", 400 : "CD", 100 : "C", 90 : "XC", 50 : "L", 40 : "XL", 10 : "X", 9 : "IX", 5 : "V", 4 : "IV", 1 : "I", } 这是错误 # command-line-arguments ./Roman_Numerals.go:9: …
125 go 



5
在Go中将float64转换为int
如何在Go中将float64转换为int?我知道该strconv包可用于在字符串之间进行任何转换,但不能在不是字符串的数据类型之间进行转换。我知道我可以使用fmt.Sprintf将任何内容转换为字符串,然后将strconv其转换为所需的数据类型的方法,但是这种额外的转换似乎有些笨拙-有更好的方法吗?
124 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.