问题标签 [go-reflect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
13751 浏览

go - 在 golang 中,是否可以从类型本身获取 reflect.Type,从名称作为字符串?

  1. 是否可以在无需实例化的情况下获得 t1 的反射类型?

  2. 是否可以通过将名称“t1”作为字符串来获取 t1 的反射类型?

0 投票
2 回答
107049 浏览

go - 使用反射,如何设置结构字段的值?

使用 package.json 处理结构字段时遇到了困难reflect。特别是,还没弄清楚如何设置字段值。

  1. 获取字段 i 的名称 - 这似乎有效

    var field = reflect.TypeOf(r).Field(i).Name

  2. 将字段 i 的值作为 a) interface{}, b) int - 这似乎可行

    var iface interface{} = reflect.ValueOf(r).Field(i).Interface()

    var i int = int(reflect.ValueOf(r).Field(i).Int())

  3. 字段 i 的设置值 - 尝试一个 - 恐慌

    reflect.ValueOf(r).Field(i).SetInt( i64 )

    恐慌:reflect.Value·SetInt 使用使用未导出字段获得的值

    假设它不喜欢字段名称“id”和“name”,因此重命名为“Id”和“Name”

    a) 这个假设正确吗?

    b)如果正确,认为没有必要,因为在同一个文件/包中

  4. 设置字段 i 的值 - 尝试两个(字段名称大写) - 恐慌

    reflect.ValueOf(r).Field(i).SetInt( 465 )

    reflect.ValueOf(r).Field(i).SetInt( i64 )

    恐慌:reflect.Value·SetInt 使用不可寻址的值


@peterSO 下面的说明是彻底和高质量的

四。这有效:

reflect.ValueOf(&r).Elem().Field(i).SetInt( i64 )

他还记录了字段名称必须是可导出的(以大写字母开头)

0 投票
4 回答
66055 浏览

go - 如何在 Go 中获取函数的名称?

给定一个函数,是否有可能得到它的名字?说:

有人告诉我runtime.FuncForPC会有所帮助,但我不明白如何使用它。

0 投票
5 回答
71618 浏览

go - 在 Go 中,如何在运行时从其类型创建一个新的结构实例?

在 Go 中,如何在运行时从对象的类型创建对象的实例?我想您还需type要先获取对象的实际值吗?

我正在尝试进行惰性实例化以节省内存。

0 投票
4 回答
43950 浏览

go - 在 Go 中按名称调用结构及其方法?

我在MethodByName()这里找到了一个函数调用http://golang.org/pkg/reflect/#Value.MethodByName但这并不是我想要的!(也许是因为我不知道如何使用它......我找不到任何例子)。我想要的是:

所以我想,首先我需要类似的东西StructByName(),然后将它用于MethodByName(),对吗!?

0 投票
3 回答
19823 浏览

go - 如何在最新的 Go 周刊中比较两个函数的指针相等性?

在 Go 中,有没有办法比较两个非零函数指针来测试是否相等?我的平等标准是指针平等。如果不是,是否有任何特殊原因不允许指针相等?

到目前为止,如果我尝试以直接的方式执行此操作:

我明白了

据我了解,这种行为是最近引入的。


我使用反射包找到了答案;但是 Atom 在下面建议这实际上会产生未定义的行为。有关更多信息和可能的替代解决方案,请参阅 Atom 的帖子。

输出:

0 投票
2 回答
23026 浏览

go - 实例新类型(Golang)

谁能告诉我如何从字符串创建一个新的 Type 实例?反映?

有一些示例,但它们适用于语言的较旧(Go 1 之前的版本)[:(]

0 投票
4 回答
16079 浏览

go - 使用反射获取函数名称

我正在尝试使用 Go 的反射系统来检索函数的名称,但是在调用其类型的 Name 方法时得到一个空字符串。这是预期的行为吗?

这是我如何解决问题的一个简单示例:

0 投票
9 回答
55999 浏览

go - 在不同类型的切片之间转换

我从 UDP 套接字获得一个字节切片 ( []byte),并希望将其视为整数切片 ( []int32),而不更改底层数组,反之亦然。在 C(++) 中,我只会在指针类型之间进行转换;我将如何在 Go 中做到这一点?

0 投票
3 回答
3160 浏览

go - Go:按名称查找函数

我是键入安全的新手,不知道如何进行以下操作