小编jre*_*ior的帖子

将存储库升级到 v2

此时,我将 Go 1.11 模块用于多个存储库。现在我正在处理一个已经是 1.x 版本的问题。结合移动到 go 模块,我做了一些其他的重大更改,所以很明显是时候增加存储库的主要版本了。这意味着要使用第 2 版。

根据“go 命令”文档:

为了保持导入兼容性,go 命令要求主版本 v2 或更高版本的模块使用该主版本作为最终元素的模块路径。例如,example.com/m 的 v2.0.0 版本必须改为使用模块路径 example.com/m/v2,并且该模块中的包将使用该路径作为其导入路径前缀,如 example.com/m/v2 /子/包。以这种方式在模块路径和导入路径中包含主版本号称为“语义导入版本控制”。

来源

这是否像更新我的go.mod文件的第一行一样简单,附加/v2到模块名称?或者我应该v2/在我的存储库中创建一个目录并将所有文件移动到那里?

versioning go

10
推荐指数
2
解决办法
2832
查看次数

在Delve中进行调试时应理解“ time.Time”值

在调试处理time.Time值的程序时,我需要能够打印值并使它们有意义。在Delve中,如果我打印类型的变量,time.Time它将打印对象的内部结构,并且不允许我time.Time在对象上运行方法。

我如何使这种结构的意义和它翻译成我的东西会被打印正常的理解Unix()UnixNano()String()功能。

例如:

$ dlv test
(dlv) b calendar.go:200
(dlv) p appt
time.Time {
wall: 0,
ext: 63673770600,
loc: *time.Location {
    name: "Local",
    zone: []time.zone len: 4, cap: 4, [
        (*time.zone)(0xc0000a8100),
    ],
    tx: []time.zoneTrans len: 235, cap: 235, [
        (*time.zoneTrans)(0xc0000bb000),
        ...+171 more
    ],
    cacheStart: 1520751600,
    cacheEnd: 1541311200,
    cacheZone: *(*time.zone)(0xc0000a8100),},}
Run Code Online (Sandbox Code Playgroud)

或在值列表的情况下:

(dlv) p dates
[]time.Time len: 2, cap: 2, [
{
    wall: 0,
    ext: 63673689600,
    loc: *(*time.Location)(0xc00008e9c0),},
{
    wall: …
Run Code Online (Sandbox Code Playgroud)

debugging go

9
推荐指数
1
解决办法
296
查看次数

如何在Kubernetes代码中满足&deployment满足类型runtime.Object?

kubectl/run.goKubernetes代码中,该Generate函数具有以下两种类型的结果列表:

runtime.Object, error
Run Code Online (Sandbox Code Playgroud)

该函数的最后一行是:

return &deployment, nil
Run Code Online (Sandbox Code Playgroud)

runtime 进口:

k8s.io/apimachinery/pkg/runtime
Run Code Online (Sandbox Code Playgroud)

runtime通过go get在该import语句上运行而得到,对象在中定义interfaces.go

type Object interface {
    GetObjectKind() schema.ObjectKind
    DeepCopyObject() Object
}
Run Code Online (Sandbox Code Playgroud)

(并且我在这里在网上找到了相同的代码。)

地址运算符创建了一个指针……更具体地说,Go规范指出:

对于类型T的操作数x,地址操作&x生成指向* x的类型* T的指针。

和指针的类型与其基本类型不同

指针类型表示指向给定类型的变量的所有指针的集合,称为指针的基本类型。

如何&deployment满足runtime.Object类型?

我最好的猜测,到目前为止是deployment实现了runtime.Object接口,并映射&deploymentruntime.Object满足可转让的这条规则

T是接口类型,并且x实现T。

在这方面,映射到结果列表类型的return语句语句等效于赋值。它是否正确?如果没有,规范或文档中是否还有其他部分对此进行了说明?

methods pointers interface go kubernetes

3
推荐指数
1
解决办法
995
查看次数

标签 统计

go ×3

debugging ×1

interface ×1

kubernetes ×1

methods ×1

pointers ×1

versioning ×1