-
使Golang TCP服务器并发
所属栏目:[大数据] 日期:2020-12-16 热度:140
Go的新手并试图使TCP服务器并发.我找到了这方面的多个例子,包括 this one,但我想弄清楚的是为什么我对非并发版本所做的一些改变不起作用. 这是我开始的原始示例代码 package mainimport "bufio"import "fmt"import "log"import "net"import "strings" // onl[详细]
-
在Golang中返回strings.Split()切片的最后一项
所属栏目:[大数据] 日期:2020-12-16 热度:107
我是Go中的 splitting文件名来获取文件扩展名(例如import(“strings”); strings.Split(“example.txt”,“.”)). 出于这个原因,我想返回分割返回的切片中的最后一项,即 for strings.Split(“ex.txt”,“.”),I want txt This问题表明这样做 strings.Split("[详细]
-
为什么golang重复相同的随机数?
所属栏目:[大数据] 日期:2020-12-16 热度:154
我是golang的新手,不知道为什么每次运行都会为rand.Intn(n int)int输出相同的数字: package mainimport ( "fmt" "math/rand")func main() { fmt.Println(rand.Intn(10)) } 文档说: Intn returns,as an int,a non-negative pseudo-random number in [0,n) f[详细]
-
当响应超过8kb时,为什么golang http服务器因“断管”而失败?
所属栏目:[大数据] 日期:2020-12-16 热度:197
我在下面有一个示例Web服务器,如果你调用curl localhost:3000 -v然后^ C(取消)它立即(1秒之前),它将报告写tcp 127.0.0.1:3000-u0026gt;127.0.0.1:XXXXX:写:破管. package mainimport ( "fmt" "net/http" "time")func main() { log.Fatal(http.ListenAndS[详细]
-
如何在程序退出时使用golang删除文件?
所属栏目:[大数据] 日期:2020-12-16 热度:120
我已经创建了一个命令行应用程序,我在其中压缩文件夹并在本地服务器上共享以供其他人下载.我想要做的是在关闭服务器后立即删除压缩文件夹的副本.这是我的代码: func main() { //flag to specify whether we will be uploading folder or a single file zipp[详细]
-
golang环境变量存储在哪里?
所属栏目:[大数据] 日期:2020-12-16 热度:138
我刚开始在 Windows 7上学习golang. 随着环境,我得到了这个: set GOARCH=amd64set GOBIN=set GOEXE=.exeset GOHOSTARCH=amd64set GOHOSTOS=windowsset GOOS=windowsset GOPATH=E:WorkbenchGoset GORACE=set GOROOT=C:DevToolsGoset GOTOOLDIR=C:DevToo[详细]
-
在Golang中运行后台任务和服务器监听的最佳实践是什么?
所属栏目:[大数据] 日期:2020-12-16 热度:155
我是Go的新手.假设我有一个服务器正在侦听HTTP请求,同时我需要检查Redis通知,以便我可以更新数据.以下是一个例子: func checkExpire() { for { switch msg := pubSubConn.Receive().(type) { case redis.Message: ... }}server.ListenAndServe() 将checkExp[详细]
-
如何在golang中提取和验证从前端发送的令牌
所属栏目:[大数据] 日期:2020-12-16 热度:182
我正在使用“ github.com/dgrijalva/jwt-go”,并能够向我的前端发送令牌,以及我想知道如何检索从前端发送的令牌,以便我可以验证令牌是否已发送是有效的,如果是,则将传递安全资源. 这是从前端javascript发送的令牌… headers: { 'Authorization':'Bearer' + l[详细]
-
数组 – 在golang中通过引用传递数组
所属栏目:[大数据] 日期:2020-12-16 热度:67
我来自C背景并在C风格中传递数组导致错误. 请帮助 package mainimport "fmt"func f(a *int){ fmt.Println(a[1])}func main(){ var a [100]int a[1]=100 f(a)} Error ::不能在f的参数中使用a(type [100] int)作为类型* int 解决方法 正如其他人在评论中提到的[详细]
-
Golang记录http响应(除了请求)
所属栏目:[大数据] 日期:2020-12-16 热度:73
我使用Go和Gorilla Web工具包的mux和处理程序包来构建一个复杂的应用程序,其中一部分需要一个http服务器. Gorilla的mux和处理程序包工作得非常好,我能够成功启动并运行http服务器,并且记录请求非常简单. 但是,我无法确定如何记录回复.理想情况下,我想要一种[详细]
-
如何在Golang中干净地将面向用户的错误与内部错误分开?
所属栏目:[大数据] 日期:2020-12-16 热度:71
我遇到了一个常见模式,我有一个接受用户输入的函数,并返回一个成功的输出值或错误.但它可以返回不同类型的错误,其中一些是用户输入错误的结果,另一些是内部错误导致的错误(例如,DB不可用). 我的函数有如下签名: // ProcessInput takes a user-input string[详细]
-
golang从函数返回对象
所属栏目:[大数据] 日期:2020-12-16 热度:78
当我从go中的函数返回一个新对象时,我正在努力弄清楚到底发生了什么. 我有这个 func createPointerToInt() *int { i := new(int) fmt.Println(i); return i;}func main() { i := createPointerToInt(); fmt.Println(i);} 返回的值是 0x1040a1280x1040a120 我[详细]
-
数组 – 在golang中与“…”运算符混淆
所属栏目:[大数据] 日期:2020-12-16 热度:69
go中有以下两种语法有什么区别? x := [...]int{ 1:1,2:2 }x := []int{ 1:1,2:2 } Go的文档说“符号…指定一个数组长度等于最大元素索引加一”.但是上述两种语法都给出了相同的长度(3). 这个操作符有一个名字“……”吗? 没有找到在谷歌搜索此操作符的方法.[详细]
-
Golang HTTP Post错误:连接被拒绝
所属栏目:[大数据] 日期:2020-12-16 热度:101
我正在尝试向运行 PHP应用程序的端口8080上的localhost发送一个post请求. 卷曲工作正常: curl --data "key=asdf" http://localhost:8080/ 但在Go中我收到以下错误: Post http://localhost:8080: dial tcp 127.0.0.1:8080: connection refused 这是代码: f[详细]
-
使用golang测量可执行运行的内存使用情况
所属栏目:[大数据] 日期:2020-12-16 热度:131
如何衡量我在Golang中通过os / exec包运行的可执行文件所使用的内存量?通过操作系统本身做到这一点更好吗? 解决方法 您需要通过操作系统本身来完成此操作.如果您使用的是plan9或posix,Go将在 ProcessState.SysUsage() 返回的结构中为您返回操作系统的使用[详细]
-
使用golang exec执行docker命令失败
所属栏目:[大数据] 日期:2020-12-16 热度:178
我正在使用cmd.go(见下文)执行docker命令但它失败了.我执行以下步骤来执行并获得以下错误. go buildsudo ./cmd 输出: docker run -v ~/exp/a.out:/a.out ubuntu:14.04 /a.out -m 10m2014/10/16 14:32:12 exit status 1 另一方面直接运行为 sudo docker run[详细]
-
单元测试 – 如何在golang中使用子进程测试时生成单元测试覆盖率
所属栏目:[大数据] 日期:2020-12-16 热度:192
我有大部分代码的单元测试.但我无法弄清楚如何为主包中的main()中的某些代码生成单元测试覆盖率. 主要功能非常简单.它基本上是一个选择块.它会读取标志,然后调用另一个函数/执行某些操作,或者只是在屏幕上打印帮助.但是,如果未正确设置命令行选项,它将以各种[详细]
-
Golang:在Redigo的RedisPool上选择DB
所属栏目:[大数据] 日期:2020-12-16 热度:56
使用redigo,我创建了一个池,就像这样: redis.Pool{ MaxIdle: 80,MaxActive: 12000,// max number of connections Dial: func() (redis.Conn,error) { c,err := redis.Dial("tcp",host+":"+port) if err != nil { panic(err.Error()) } return c,err } 我遇[详细]
-
Golang Big Integers到二进制字符串
所属栏目:[大数据] 日期:2020-12-16 热度:66
我认为将golang的大型int(数学/大包)转换为字符串很简单,但有没有直接的方法将大型int转换为二进制字符串? 解决方法 应该像这样简单: i := big.NewInt(2014)s := fmt.Sprintf("%b",i) // 22222011110fmt.Println(s) 希望这是你正在寻找的.[详细]
-
测试 – 如何在golang中测试并发和锁定?
所属栏目:[大数据] 日期:2020-12-16 热度:114
我们正在尝试测试锁.基本上,有多个客户端试图获取特定密钥的锁定.在下面的示例中,我们使用了键“x”. 我不知道如何测试锁定是否正常.我只能读取日志以确定它是否正常工作. 正确的事件顺序应该是: client1获取密钥“x”的锁定 client2尝试获取密钥“x”(fmt.[详细]
-
类型 – golang类型转换不起作用(I)预期
所属栏目:[大数据] 日期:2020-12-16 热度:56
我正在使用 go-flags来解析命令行选项. 根据go-flags文档:“… [if] -h或–help在命令行参数中指定,将自动打印一条帮助消息.此外,返回特殊错误类型ErrHelp.” 我打电话的方法是: func (p *Parser) Parse() ([]string,error) { 我打电话给: var opts struc[详细]
-
golang:net.Conn读得很慢?
所属栏目:[大数据] 日期:2020-12-16 热度:57
我正在使用net.Listen(“tcp”,addr)作为一个小服务器程序,它接受数据并将其存储在服务器上. 在客户端,我有一个c程序,我只是简单地写了4096000 BYTES到socket(连接到我的服务器程序) 客户端的写入在不到一秒钟内完成. 当使用连接net.Conn的Read()函数时,读取[详细]
-
Golang – 像[0:2]这样的切片声明
所属栏目:[大数据] 日期:2020-12-16 热度:150
我不理解Go中的切片声明. 对于我来说,数组的第一个和第二个元素的声明必须是0:1. 但它是0:2.为什么?我怎么读这个,从零到2减去1(所有时间)? var slice = array[0:2] 对不起我的愚蠢问题,但这对我没有意义. 解决方法 切片边界是 half open,这是许多编程语[详细]
-
使用Ping查看Golang中的DB连接是否处于活动状态
所属栏目:[大数据] 日期:2020-12-16 热度:127
是否可以安全地ping数据库以检查我的golang应用程序是否仍然连接或是否有比这更好的解决方案?我在某处读过我们不应该使用.ping()来确定连接丢失. 谢谢. 解决方法 我想说Ping()是这样做的方法,如果你需要在程序启动时分别测试运行查询的连接. 通常,我只相信[详细]
-
golang相当于存储数据的dicts列表
所属栏目:[大数据] 日期:2020-12-16 热度:155
我正在学习golang.我试图存储一些数据,然后我将发送到文件. 这个python块的golang等价物是什么? (一系列文字) friends = [ { "name":"James","age":44,},{ "name":"Jane","age":47,] 使用一片地图或结构会更好吗? 我希望能够过滤数据(例如所有45岁以上的朋[详细]
