草庐IT

go - 我怎样才能克服 Golang 要求每个包都包含可构建代码的要求?

我正在用Go构建一个Web应用程序,作为它的一部分,我定义了几个中间件函数。现在他们都住在“我的/中间件”包中。该命名空间被我定义的所有不同函数变得非常困惑,所以我决定将它们全部放在它们自己的子目录中,例如“我的/中间件/gzip”。当我这样做时,出现错误:nobuildableGosourcefilesmy/middleware我不希望所有这些函数都在同一个命名空间中,但似乎我唯一的选择是在my/middleware目录中创建一个占位符.go文件,其中包含一个空的init函数或其他东西。这听起来很糟糕,所以我想就如何在父包中没有任何共享/公共(public)代码时实现将类似类的包分组

go - 我怎样才能使这个对象映射在 Go 中更干燥和可重用?

我在Go中创建了一个非关系型的对象映射,它非常简单。我有几个看起来像这样的结构:typeMessagestruct{Idint64MessagestringReplyTosql.NullInt64`db:"reply_to"`FromIdint64`db:"from_id"`ToIdint64`db:"to_id"`IsActivebool`db:"is_active"`SentTimeint64`db:"sent_time"`IsViewedbool`db:"is_viewed"`Methodstring`db:"-"`AppendToint64`db:"-"`}要创建一条新消息,我

go - 我怎样才能把一个对象放在golang的对象中

我正在尝试做的是将来self的数据库的整个对象加载到一个对象中。typeRatingPKstruct{ratingsPKRating}func(r*RatingPK)Init(rgRating){r.ratingsPK=rg}funcsearchUserRatings(idstring)(ratings[]Rating){rows,err:=db.Query("SELECT*FROMratingsWHEREuserId=?",id)iferr!=nil{return}forrows.Next(){rate:=Rating{}err=rows.Scan(&rate.MovieId,&ra

string - 去我怎样才能有效地将字符串分成几部分

我正在与字符串拆分作斗争。我想用通配符将字符串拆分成一个slice,但这个slice也应该包含这个通配符。例如:/applications/{name}/tokens/{name}应该拆分为[/applications/{name}/tokens/{name}]等这是我写的一个示例代码,但它不能正常工作,我也不满意。https://play.golang.org/p/VMOsJeaI4l有一些示例路由需要测试。方法splitPath将路径拆分为多个部分并同时显示:之前和之后。 最佳答案 解决方法:varvalidPathRe=reg

go - 在 go AuthFromMD 中,始终期望将授权作为 header 名称。我怎样才能覆盖它。

我正在使用github.com/grpc-ecosystem/go-grpc-middleware/util/metautils包来提取header,参见LinktoAuthFromMDimplementation我确信我可以覆盖AuthFromMD并拥有我自己的header名称而不是authorization。但事实证明是var:=metautils.ExtractIncoming(ctx).Get(headerAuthorize)这个方法调用总是期望headerAuthorize是authorization。或者它正在抛出错误。我的用例是具有不同的HeaderNames,因此我可以

go - 我怎样才能找到地球上两条线(来自 geojson 的线串)之间的距离

如果我有纬度和经度,如何找到地球上两条线之间的最小距离?偏爱golang,但用任何编程语言都会很酷我真的很努力地找到了,但是我只能找到两个点的方法 最佳答案 获取积分http://turfjs.org/docs#explode通过http://turfjs.org/docs#coordEach找到它到线http://turfjs.org/docs#pointToLineDistance的距离 关于go-我怎样才能找到地球上两条线(来自geojson的线串)之间的距离,我们在StackOv

mongodb - 我怎样才能在 json 中响应时间毫秒为零

在我的mongodb中,我有字段"createdAt":ISODate("2018-10-02T01:17:58.000Z")我有结构有字段CreatedAttime.Time`json:"createdAt"bson:"createdAt"`但是当我通过json响应时,它缺少零毫秒我以为"createdAt":"2018-10-02T01:17:58.000Z"但是收到了"createdAt":"2018-10-02T01:17:58Z" 最佳答案 来自golang.org/pkg/time/#Time.MarshalJSON:T

memory-management - 我是否需要将 map 设置为 nil 才能对其进行垃圾回收?

假设我有一个简单的映射,其中字符串作为键类型,自定义结构作为值类型。像这样:map[string]*struct我用很多不同的值填充这张map,其中很多值在一段时间后将永远不会再次使用。所以我不确定golang垃圾收集器是否会为我清理我的map,或者我需要自己做。然后我在另一个问题上遇到了这个答案:IsitsafetoremoveselectedkeysfromGolangmapwithinarangeloop?这让垃圾收集器看起来不会为我做这件事,如果我想不时释放一些内存,我唯一的解决方案是将我的映射设置为nil。这是真的吗?还是有另一种方法可以做到这一点而不会丢失我的map中不是“

docker - 二进制文件是用 'CGO_ENABLED=0' 编译的,go-sqlite3 需要 cgo 才能工作。这是一个 stub

我想在Golang项目中使用sqlite3。但是在docker容器中运行它有一些错误。二进制文件是用'CGO_ENABLED=0'编译的,go-sqlite3需要cgo才能工作。这是一个stub这是我的构建脚本CGO_ENABLED=0GOOS=linuxGOARCH=amd64gobuild-omainmain.go我不能在mac电脑上使用CGO_ENABLED=1FROMgolang:1.13-alpineENVWORK_DIR=/goENVTIME_ZONE=Asia/SingaporeRUNln-snf/usr/share/zoneinfo/$TIME_ZONE/etc/loc

layout - 是否需要 go 才能使用包

是否需要goget包裹?我的代码在这里:https://github.com/retep-mathwizard/utils我的包依赖于其他项目 最佳答案 goget将为它们检查所需的依赖项。例如,当我通过以下方式获取您的包裹之一时:去获取github.com/retep-mathwizard/utils/convertgo还会获取skilstak资源,因为您的包依赖于它。去获取documentation说:Get下载并安装由导入路径命名的包及其依赖项。 关于layout-是否需要go才能