草庐IT

设计实例

全部标签

go - 如何从其他文件访问我的日志实例

我最近开始学习Go,当我决定将我的代码放在多个文件(main.go)中时,出现了一个问题。我经常需要的常用内容(如日志、缓存、配置、指标等)在其他文件中都不可用,即使它们属于同一个“packagemain”。我想根据配置(viper包)中的数据配置一次我的日志实例(logrus包)。而这仅仅是个开始,我很快就会有一个DB实例(?)、Cache实例等。解决我的问题的最好方法是什么,围棋的最佳实践是什么?如何遵循DRY原则?如果我将我的初始日志设置放入“mylog”包中,然后将其导入到每个包的每个文件中,那么会有多少个mylog实例?每个文件/包/??有效率吗?Log和Config也是相互

file - 为什么golang File struct设计成这样

golang文件结构是这样的:typeFilestruct{*file}而Filestructfunctiona也是为了接收指针而设计的,为什么要这样设计呢? 最佳答案 在Goos包源码注释中有说明。例如,这是安全的:packagemainimport"os"funcmain(){f,err:=os.Create("/tmp/atestfile")iferr!=nil{*f=os.File{}}//finalizerruns}Packageosgo/src/os/types.go://Filerepresentsanopenfile

database - 我应该在哪里存储全局数据库实例?

在go中初始化数据库实例后,应将其存储在哪里?我想从请求处理程序访问它们。//server.gostorage,err:=config.GetFileStorage(viper.GetViper())iferr!=nil{log.Fatal(fmt.Sprintf("Failedtoconfigurethefilestorage:%v\n",err))}db,err:=config.GetDatabase(viper.GetViper())iferr!=nil{log.Fatal(fmt.Sprintf("Failedtoconfigurethedatabase:%v\n",err))

c - Golang C 绑定(bind)类型设计

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。ImprovethisquestiontypeFoobarC.struct_foobar对比typeFoobarstruct{foobarC.struct_foobar}在为C库编写Golang绑定(bind)时,哪一个有哪些(缺点)优势?

go - 如何使用 Go 列出 Google Cloud Platform 上正在运行的实例

我正在尝试通过管理GoogleCloudPlatform来学习Go。Compute相关的函数怎么用我没看懂。目标是列出带有一些go代码的实例。这是https://godoc.org/google.golang.org/api/compute/v1#InstancesService.List相关功能。func(r*InstancesService)List(projectstring,zonestring)*InstancesListCall有两个结构,InstancesService和InstancesListCall据我所知,我应该定义这些结构,但尚不清楚应该在结构中定义的东西。我已

pointers - 如何设计具有可修改字段的结构?

我正在用Go编写一个简单的游戏,但遇到了一些问题。我的代码如下所示:packagemainimport"fmt"typeLocationstruct{XintYint}typeCarstruct{MaxSpeedintLocLocation}func(carCar)SetLocation(locLocation){car.Loc=loc}func(carCar)GetLocation()Location{returncar.Loc}typeBikestruct{GearsNumintLocLocation}func(bikeBike)SetLocation(locLocation){b

在 ec2 实例中执行例程

我正在用golang编写应用程序,并且正在c5.18xlargeec2中进行一些测试来自aws的实例,它有72个vCPU。go例程将分布在72个vCPU中是否正确? 最佳答案 如Go1.5发行说明所述Bydefault,GoprogramsrunwithGOMAXPROCSsettothenumberofcoresavailable;inpriorreleasesitdefaultedto1.所以从Go1.5开始,默认值应该是核数。这意味着是的,go例程应该分布在72个CPU中,除非您执行类似runtime.GOMAXPROCS(1

go - 我如何在 golang 中反射性地创建一个枚举实例?

我正在尝试根据其reflect.Type和值创建一个枚举实例https://play.golang.org/p/PqklMe_Z4WXpackagemainimport("fmt""reflect")typeWeekDaystringconst(SUNDAYWeekDay="sunday"MONDAYWeekDay="monday")func(dayWeekDay)WeekDay()bool{switchday{caseSUNDAY,MONDAY:returntruedefault:returnfalse}}funcmain(){rt:=reflect.TypeOf(WeekDay("

go - 实例化链码时出错

请帮我解决这个问题,当我实例化我的链代码时发生错误:目前,我猜测问题与shim包有关,因为我在我的utils包中删除了它,实例化成功。我的链码:import("bytes""encoding/hex""encoding/json""fmt""strconv""github.com/golang/protobuf/proto""github.com/hyperledger/fabric/core/chaincode/shim""github.com/hyperledger/fabric/protos/msp"pb"github.com/hyperledger/fabric/protos/

pointers - 如何通过 Go 中的 map 指针更改/访问 map 实例的值?

假设我们有代码:varCache_map*map[string]intCache_map=new(map[string]int)那我们要在Cache_map中加入key:type&value1,怎么办? 最佳答案 在这种情况下不需要new、make或映射指针。骨架/示例:packagemainimport"fmt"varCacheMap=map[string]int{}funcmain(){CacheMap["type"]=1fmt.Printf("%#v\n",CacheMap)}Playground输出:map[string]i