相关疑难解决方法(0)

使用reflect识别非内置类型

我需要区分这样的类型

type A []byte
Run Code Online (Sandbox Code Playgroud)

来自a []byte.用reflect,reflect.TypeOf(A{}).Kind告诉我,这是一个Slicebyte.如何[]byte{}A{}没有要检查的有界类型列表的情况下区分?

有没有新方法在较新版本的Go中执行此操作?

reflection go go-reflect

8
推荐指数
1
解决办法
1238
查看次数

如何使用未导出的字段克隆结构?

如果我的类型定义为:

type T struct {
    S  string
    is []int
}
Run Code Online (Sandbox Code Playgroud)

那我怎么去克隆这种类型的对象呢?如果我做一个简单的任务:

p := T{"some string", []int{10, 20}}
q := p
Run Code Online (Sandbox Code Playgroud)

然后对[]int影响两个对象的任何更改.由于T.is未导出,因此即使使用反射提取也无法显式复制.

我正在提供Clone类型本身的包中的方法.但这对其他软件包中的类似类型没有帮助.还有另一种方法吗?

struct clone go

5
推荐指数
1
解决办法
1979
查看次数

标签 统计

go ×2

clone ×1

go-reflect ×1

reflection ×1

struct ×1