草庐IT

go-mocket

全部标签

javascript - 从 10 进制转换为 2 到 36 之间的任意进制 Go

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭3年前。Improvethisquestion如何在围棋中将10进制转换为2-36进制?在javascript中你只是Number.toString(radix?)例如变量号=12345;console.log(my_number.toString(36).toUpperCase());在go中,这是实现相同效果的方法funcconvertToAnyBase2to36(numint64,baseint64)string{varlenint64

go - 为什么 _(underscore) 在输出中被忽略?

我想知道这个程序输出背后的原因。packagemain程序import("fmt")funcmain(){a:=1_00_000fmt.Println(a)}输出100000为什么下划线在输出中被忽略了。Go中的这个新特性有什么用? 最佳答案 它在输出中没有被忽略;它在源代码中被忽略。下划线便于使代码中的大量文字更易于阅读;文字仍然是一个整数,并且整数不包含下划线。当然,您总是可以使用字符串:a:="1_00_000"fmt.Println(a)作为分隔符的下划线是Go1.13中的一项新功能:https://golang.org/d

go - 如何在 Go 中保持 "package"状态?

我的目标是封装在一个模块/包中。主要包:packagemainimport("github.com/zenazn/goji""./routes")funcmain(){routes.Setup()goji.Serve()}还有另一个包:packageroutesimport"github.com/zenazn/goji"funcSetup(){goji.Get("/static",func(whttp.ResponseWriter,r*http.Request){fmt.Fprint(w,"static!")})}我该怎么做? 最佳答案

go - Go中函数名前的参数?

这个问题在这里已经有了答案:WhatsthedifferenceoffunctionsandmethodsinGo?(5个答案)关闭5年前。我见过一些这样定义的Go函数:typepolystruct{coeffs[256]uint16}func(p*poly)reset(){fori:=rangep.coeffs{p.coeffs[i]=0}}您以后可以称其为:varppolyp.reset()我还没有在我所知道的其他编程语言中看到这一点。重置函数中p*poly的作用是什么?它看起来像一个函数参数但是写在函数名之前。有什么解释吗?

unit-testing - 我如何测试代码是否真的启动了一个 go 例程?

如果我在我的代码中创建一个go例程,我该如何编写一个测试用例来测试是否正在创建一个goroutine。 最佳答案 howdoIwriteatestcasethattestswhetheragoroutineisbeingcreated这绝不是您要寻找的。相反,您应该对测试进行检测,以检查go例程应该执行的操作是否确实发生了。 关于unit-testing-我如何测试代码是否真的启动了一个go例程?,我们在StackOverflow上找到一个类似的问题: htt

go - 如何在golang中获取随机数样本?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭4年前。Improvethisquestion或者我必须使用简单的方式,例如:vararr[]intfori:=0;i

go - 在 go 中装饰基本数据类型

我正在开始新的应用程序。我知道我们不能猴子修补go代码。因此,如果我们想对基本数据类型(如int、float、string等)进行一些修改,那是不可能的。因此,我正在考虑为这些基本内容创建新类型,并在整个应用程序中使用它们而不是基本类型。以后如果我们想覆盖其中的一些方法或者我们想添加一些新的方法,我们可以覆盖这些新类型。这种做法好吗??示例代码如下:typeNewIntInt或typeNewIntstruct{Int}在这里,如果我正在创建一个像vartestNewInt=16这样的变量,它是否会通过创建内存问题在内部创建2个对象(一个用于基本int,另一个用于newint)?还是两者

go - 有没有办法将 Go 可执行文件分成几个文件?

我正在运送几个用Go编译的可执行文件。每个可执行文件本身并不包含很多代码,但它们每个都使用一个公共(public)库,其中包括日志记录、配置管理、通信层等...这导致每个可执行文件的大小在15-20mb之间,有时只有1000行自己的代码。Go中是否有一种方法(目前可用或计划在未来发布)允许将应用程序分成几个文件(即Windows中的dll,Linux/Mac中的.so)?我知道我可以编译该库,然后将其用作外部二进制文件,但那样我就无法获得类型系统和Go编译器优化的好处。我在这里错了吗?有办法吗? 最佳答案 简短的回答:有点?听起来您

go - "func main"中的重复 "package main"是否错误,为什么错误?

请帮助我理解为什么“packagemain”中重复的“funcmain”是错误的。VC中的错误:“main在此block中重新声明”。//$tree//.//├──main.go//├──second.go//```gobuildmain.go```//or//```gobuild.```//file:main.gopackagemainimport("fmt")funcmain(){fmt.Println("thisisfileMAIN")}//file:second.gopackagemainimport("fmt")funcmain(){fmt.Println("thisisfi

go - channel 提前终止

我正在为每个执行转换的管道制作一系列go例程的原型(prototype)。例程在所有数据通过之前终止。我已经查阅了Donavan和Kernighan的书并在Google上搜索了解决方案。这是我的代码:packagemainimport("fmt""sync")funcmain(){a1:=[]string{"apple","apricot"}chan1:=make(chanstring)chan2:=make(chanstring)chan3:=make(chanstring)varwgsync.WaitGroupgoPipe1(chan2,chan1,&wg)goPipe2(chan