草庐IT

make_XYZ

全部标签

bash - makefile 中的 Make 规则总是成功

这是我的golang项目的makefile:.PHONY:killallrun:install./bin/chunkserver&;./bin/master&install:cleangoinstallgodfs/chunkservergodfs/masterclean:killallrm-fbin/masterbin/chunkserverkillall:kill-9$$(lsof-tbin/*2>/dev/null)2>/dev/null当我运行makeinstall时,它显示了这个错误:make:***[killall]Error2我需要返回一些代码来指示killall规则总是成

json - 戈朗 : Make HTTP call and parse JSON with Go Routines and JSON

我对golang比较陌生,我想创建一种方法来同时调用多个URL,并解析JSON文档。但是,我真的不确定我是否正确使用了go例程和channel。在这一点上,我不确定我是否没有正确地“在Go中思考”,或者我对goroutines和channel的理解/方法是否不准确。另外,在解析的时候,我想解析body中的results属性,它是一个数组,results中的每个元素都包含一个doc我想过滤掉的属性。目标是同时执行多个提取,并仅针对响应主体结果数组内的doc属性解析响应。非常感谢任何有助于更好地理解事物的见解或建议。提前致谢。packageoperationsimport("encodin

go - debuild 通知 make[1] : go: Command not found

我需要为我的golang程序构建一个deb。当我运行debuild-uc-us时,它会显示:fakerootdebian/rulescleandhcleandh_testdirdh_auto_cleanmake[1]:Enteringdirectory`/home/vagrant/zbus'goclean./zbus-cli/make[1]:go:Commandnotfoundmake[1]:***[clean]Error127make[1]:Leavingdirectory`/home/vagrant/zbus'dh_auto_clean:make-j1cleanreturnedex

go - `var a chan int` 和 `a := make(chan int)` 有什么区别?

今天我在学习channels和goroutineofgo。我遇到了一些让我困惑的现象。我的go文件如下所示:packagemainimport("fmt")functestRoutine(numberint,channelchanint){channel当我使用语法a:=make(chanint)时效果很好。但是当我将a:=make(chanint)更改为varachanint时,我得到了panic报告:fatalerror:allgoroutinesareasleep-deadlock!goroutine1[chanreceive(nilchan)]:main.main()/User

Go:内置 make - 容量是否有所不同

考虑要动态地填充恰好有5个元素的数组/slice。不多也不少。(1)初始长度为0的slicesl:=[]string{}fori:=0;i(2)设置初始长度的slice,无容量sl:=make([]string,5)fori:=0;i(3)设置初始长度的slice,给定容量sl:=make([]string,5,5)fori:=0;i我的感觉告诉我#1不是最佳解决方案,但我想知道为什么我会选择#2而不是#3,反之亦然?(性能方面) 最佳答案 首先,每当您对性能有疑问时,benchmark和profile.其次,我看不出这里有任何区别

go - make([]int, 0)、[]int{} 和 *new([]int) 之间有什么区别?

根据https://play.golang.org/p/7RPExbwOEU它们都打印相同并且具有相同的长度和容量。三种初始化slice的方式有区别吗?有首选方法吗?我发现自己同时使用make([]int,0)和[]int{}的频率相同。 最佳答案 这会初始化一个0长度的slice。make([]int,0)使用make是初始化具有不同于长度的特定容量的slice的唯一方法。这分配了一个长度为0,但容量为1024的slice。make([]int,0,1024)这是一个slice文字,它也初始化了一个0长度的slice。使用这个或m

go - golang 中的 make 和 initialize struct 有什么区别?

我们可以通过make函数创建channel,通过{}表达式新建一个对象。ch:=make(chaninterface{})o:=struct{}{}但是,make和{}新建map有什么区别?m0:=make(map[int]int)m1:=map[int]int{} 最佳答案 make可用于使用预分配空间初始化映射。它需要一个可选的第二个参数。m0:=make(map[int]int,1000)//为1000个条目分配空间分配需要cpu时间。如果您知道映射中将有多少个条目,您可以为所有条目预分配空间。这减少了执行时间。您可以运行以下

戈朗 : Error while make test: signal: killed

我在Golang项目上运行maketest时遇到此错误:signal:killedFAILmake:***[test]Error1相同的代码在昨天之前运行得非常好。注意:我也尝试在其他分支上进行测试,但结果相同。 最佳答案 2017年4月27日更新:新的Go1.8.1(2017/04/07发布)修复了这个问题。请下载并安装最新版本。旧答案:主要是命令行工具8.3不兼容。根据https://github.com/golang/go/issues/19734的解决方案:首先删除/Library/Developer/CommandLine

go - c :=make(chan int) and c:=make(chan int, 1)有什么区别?

我认为它们是一样的,但是Thegomemorymodel中有一个这样的词:,如果channel被缓冲(例如,c=make(chanint,1))那么程序将不能保证打印“hello,world”——它可能会打印空字符串,崩溃,或者做其他事情。这是正确的吗? 最佳答案 虽然Evan是对的,但我认为更长的解释可能会有用:如EffectiveGo中所述,以下是相同的,并为您提供无缓冲channel:ci:=make(chanint)//unbufferedchannelofintegerscj:=make(chanint,0)//unbuf

go - 是否可以通过 make() 在 go 中调用结构构造函数?

有没有更好的方法来分配这个数组的内容,比如自动调用NewThing()构造函数而不是手动构造每个元素?packagemainimport"sync"typeThingstruct{lock*sync.RWMutexdatachanint}funcNewThing()*Thing{return&Thing{lock:new(sync.RWMutex),data:make(chanint)}}funcmain(){n:=10things:=make([]*Thing,n)fori:=10;i我意识到我正在分配一个指针数组,我的其他尝试均未成功并且数据不是已初始化的channel。这只是一个