草庐IT

noopener

全部标签

go - 如何在golang中实现 "tar cvfz xxx.tar.gz "?

我想用golang解压tar-gz文件。err:=DecompressTarGz('xxx.tar.gz','/Users/foobarbuzz/') 最佳答案 使用compress/gzip结合archive/tar或使用os/exec如果您不想在Go中实现所有这些,可以直接调用tar和gzip。 关于go-如何在golang中实现"tarcvfzxxx.tar.gz"?,我们在StackOverflow上找到一个类似的问题: https://stackov

go - 在NewX函数上返回指针背后有充分的理由吗?

这个问题已经有了答案:WhyshouldconstructorofGoreturnaddress?1答Pointersvs.valuesinparametersandreturnvalues3答在结构的“构造函数”上返回指针是否有充分的理由?例如:typeMyTypestruct{}funcNewMyType()*MyType{varm*MyTypereturnm}VStypeMyTypestruct{}funcNewMyType()MyType{varmMyTypereturnm}在大多数情况下,“构造函数”接受一些参数并返回指向类型的指针。为什么不返回一个值呢?提前谢谢。

Golang Channel 收不到消息

我尝试探索gochannel,我创建的channelbuffermax10,gomaxprocess是2,但我想知道为什么这段代码收不到消息runtime.GOMAXPROCS(2)messages:=make(chanint,9)gofunc(){for{i:= 最佳答案 您的案例类似于this,虽然它可能在某些时候看起来有效,但不能保证总是有效。只是添加一些上下文,在无缓冲channel中,发送go例程在尝试发送值时被阻塞,并且保证在发送go例程被唤醒(在本例中为main)之前发生接收,所以在这种情况下,这似乎是一个可行的选择。

go - Golang 应用程序的类似 PM2 的进程管理解决方案?

Go是否有类似PM2forNodeJS的进程管理器?PM2的基本特征:无限期地在后台运行应用程序,例如等待请求的服务器。重启后重启应用。编者注:PM2提供了一种在后台永远运行NodeJS应用程序的简单方法,例如用于生产服务器。当然,您可以使用Linux操作系统,使用不特定于任何特定编程语言的工具来做到这一点,这些答案很有帮助。由于Go可以创建可执行文件,因此您实际上不需要Go语言特定的解决方案来解决这个问题。 最佳答案 开发环境对于开发,您可能需要进程管理器来监视文件更改并实时重新加载您的服务器二进制文件。我习惯了Godeganst

python - 如何知道远程tcp设备是否关机

在我的GO代码中,我正在建立一个TCP连接,如下所示:conn,err1:=net.Dial("tcp",)iferr1==nil{buf:=make([]byte,256)text,err:=conn.Read(buf[:])iferr==io.EOF{//remoteconnectionclosehandlefmt.Println("connectiongotresetbypeer")panic(err)}}为了模拟另一端,我在另一台计算机上运行一个python脚本,它打开一个套接字并将一些随机数据发送到上面的代码行正在监听的套接字。现在我的问题是,当我通过按ctrl+C杀死这个p

ubuntu - 如何从 GO 语言的程序中给出 ubuntu 终端命令?

是否有可能从GO语言程序向ubuntu终端命令。(在ubuntu中安装GO) 最佳答案 是的。您使用theexecpackage.查看以下示例:SpawningProcessesExec'ingProcesses我会在我的回答中包含一个例子,但你没有提供任何关于你正在尝试做什么的信息,所以我链接到一些有用的例子。 关于ubuntu-如何从GO语言的程序中给出ubuntu终端命令?,我们在StackOverflow上找到一个类似的问题: https://stac

go - 为什么不能在 Go 中使用 add 运算符进行元组赋值?

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭4年前。Improvethisquestion根据theGolanglanguagesyntaxspecification:Assignment=ExpressionListassign_opExpressionList.assign_op=[add_op|mul_op]"=".此外:Atupleassignmentassignstheindi

file - 使用小 RAM 在 Go 中读取大文件的最快方法

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭4年前。Improvethisquestion我想从不同的文本或JSON中读取数据或CSV文件。我应该遵循哪种方法?我有博文Fileread和Read2 GBtextfilewithsmallRAM用于文件读取的不同方法。不同的方法:分块读取文件同时读取文件block将整个文件读入内存将长字符串拆分为单词逐字扫描用小RAM读取文件的最快方法是什么?

go - 为什么 Go 常量中不允许使用 `math.Sin`?

根据EffectiveGo,函数math.Sin不能用于定义常量,因为该函数必须在运行时发生。此限制背后的原因是什么?浮点一致性?Sin实现的怪癖?还有别的吗?其他语言也支持这种事情。在C中,例如:从版本4.3开始,GCCsupportscompile-timecalculationofthesinefunction.(请参阅“常规优化器改进”部分)。但是,如thisblogpostbyBruceDawson中所述,这可能会导致意想不到的问题。(请参阅“编译时与运行时sin”部分)。这是Go中的一个相关问题吗?还是由于其他原因限制了这种使用? 最佳答案

go - Go 允许算术运算溢出而不是抛出异常是预期的行为吗?

我正在将一些Go代码移植到Rust,我意识到Rust会在乘法期间发生溢出时发生panic,而Go允许发生溢出。下面的测试代码,不会导致溢出但会打印减少的值。(测试通过:https://play.golang.org/)funcmain(){fmt.Println("test\n")varkeyuint64=15000;key=key*2862933555777941757+1fmt.Println(key)} 最佳答案 Spec:Integeroverflow:Forunsignedintegervalues,theoperatio