Go问答技术文章
-
我最近在做一个回溯问题,遇到了这个我无法理解的奇怪场景。这个问题与列出给定数组中所有可能的子集有关。这是代码片段:funcsubsets(a[]int)[][]int{sort.ints(a)res,cur:=[][]int{},[]int{}iflen(a)==0{returnappend(res,cur)}subsetsutil(a,0,&res,cur)returnres}fun433 收藏 -
我想知道是否有非特定于操作系统的方法来测试Go程序是否通过使用gorun命令或执行gobuild命令生成的二进制文件启动。460 收藏 -
现在写我有一个巨大的字符串,我得到了250-300个字符,我正在使用它写入文件file,err:=ioutil.tempfile("/downloads","*.txt")iferr!=nil{log.fatal(err)}file.write(mystring)这将所有内容写在一行中,但是有没有一种方法可以填充行,以便在76个字符后自动进入新行。找到了一个完全满足上述要求的解决方案。337 收藏 -
我正在尝试在golang中创建这个结构-typedefstructfile_id_descriptor{dworddwsize;file_id_typetype;union{large_integerfileid;guidobjectid;file_id_128extendedfileid;}dummyunionname;}file_id_descriptor,*lpfile_id_120 收藏 -
我正在尝试使用sarama获取kafka生产者/消费者指标。但我找不到任何关于如何执行相同操作的示例。有人可以提供示例实现示例吗?我使用以下代码来获取经纪人的指标。但是获取生产者/消费者指标的配置应该是什么。我假设它不会相同。如果我错了请纠正我saramaConfig:=sarama.NewConfig()saramaConfig.Version=client,err:=sarama.NewClient(,saramaConfig)ife237 收藏 -
我已经设置了一个slack应用程序,允许我将通知从我的代码发送到私人slack频道。我已邀请机器人加入频道,当我从命令行运行该应用程序时,一切都很好。但是,当我尝试从docker容器运行它时,我发现频道未找到。如果我尝试使用完全相同的代码,并在公共渠道中向机器人发送消息,那么没有问题,一切都很好。两个机器人都有权限,chat:write和chat:write.public为什么这只适用于某些机器而不适用于其他机器?我知道这可能没有足够的细节,但我不确定需要什么来帮助诊断这个问题。370 收藏 -
当测试从api调用的数据库过程时,当它顺序运行时,它似乎在大约3秒内一致运行。但是我们注意到,当同时收到多个请求时,这可能需要更长的时间,从而导致超时。我正在尝试将“一次多个请求”的情况重现为gotest。我尝试了-parallel10go测试标志,但时间相同,均为约28秒。我的基准测试函数有问题吗?funcBenchmark_RealCreate(b*testing.B){b.ResetTimer()forn:=0;n165 收藏
我正在构建一个web服务器,它必须接受来自客户端的http请求,但也必须接受来自对等点的原始tcp套接字请求。由于http在tcp上运行,因此我尝试通过tcp服务器路由http请求,而不是运行两个单独的服务。有没有一种简单的方法可以使用net.conn.read()读取数据,确定它是否是httpget/post请求并将其传递给内置的http处理程序或gorillamux?现在我的代码如下所示,我正在自己构建http路由逻辑:funcListen197 收藏
地图上的类型断言不起作用,这是正确的方法吗?详细说明一下,我的目标是返回具有动态类型的地图。此示例仅用于演示。packagemainimport"fmt"funcmain(){m:=hello().(map[string]int)fmt.Println(m)}funchello()interface{}{returnmap[string]interface{}{"foo":2,"bar":3319 收藏
我正在使用dockerfile构建go代码,并且尝试在-ldflags选项中传递3个选项。其中两个标志来自env变量,我必须通过字符串插值或连接将它们注入到-ldflags内容中,但我不知道如何实现。p>目标是将git修订哈希值和当前时间戳注入到main.go的两个变量中可以通过使用“echo”命令从dockerfile创建文件来完成,但我想确保使用简单的变量插值/连接是不可能的ENVGIT_REVISION$(gitrev-parse--sh276 收藏
我希望go程序在bash终端中运行命令(包括内置命令),并在终端本身中显示它,例如$lstrial.gooutput.txthello.txt$pwd/home/bb/cc$goruntrial.gopwd/home/bb/cc$goruntrial.gocd..$pwd/home/bb正如您所看到的,golang脚本将命令作为输入,并在相同的终端和环境中执行它,并显示输出我尝试了以下代码,但它不适用于内置命令cmd:=exec.Comma157 收藏
当我尝试使用axios发送post请求时,在控制台中遇到此错误从源“http://localhost:3000”访问“localhost:8080”处的xmlhttprequest已被cors策略阻止:跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https.axios.post('localhost:8080',{username}).then(res=>{//dostuff})似乎有几种方法可以206 收藏
我正在维护一个Go项目的代码,该项目读取和写入大量数据,并且已经成功完成了一段时间。最近,我做了一个更改:在程序开头将一个包含约200万条记录的CSV文件加载到带有结构值的映射中。该映射仅在B部分中使用,但首先执行A部分。第一部分的运行速度明显比以前慢(处理时间增加了四倍)。这很奇怪,因为这部分逻辑没有改变。我花了一周的时间试图解释这是如何发生的。以下是我采取的步骤(当我提到性能时,我总是指A部分,其中不包括将数据加载到内存中的时间,实际上与之无关):该程序在Docker容366 收藏
我需要编组为这种json格式:{"messageprotocolhandshake":[{"handshaketype":"announcemax"},{"version":[{"major":1},{"minor":0}]}]}问题在于匹配handshaketype。我的结构是typemessageprotocolhandshakestruct{handshaketypehandshaketype`json:"handshaketype"`version143 收藏
我对golang比较陌生,并不完全理解流。我有一个正在进行rest调用的函数(断路器函数)。我让它工作,但它只是流回“responsebody”。我实际上想将主体和标头一起流回流的整个请求。当我尝试在“标头”上使用类似的方法时,我收到一个错误,表明标头不可流式传输。有没有一个好的/最好的方法来实现这个目标?谢谢。以下是我的功能。funcCallWithRetries(req*http.Request,outputchan[]byte)error{r:=re161 收藏