go-reflect

    11热度

    3回答

    我试图使用Go的反射系统来检索函数的名称,但在调用其类型的Name方法时,我得到一个空字符串。这是预期的行为? 这是我如何处理这个问题一个简单的例子: package main import "fmt" import "reflect" func main() { typ := reflect.TypeOf(main) name := typ.Name()

    63热度

    2回答

    使用reflect包进行结构字段的处理时间很长。特别是还没有想出如何设置字段值。 type t struct { fi int; fs string } var r t = t{ 123, "jblow" } var i64 int64 = 456 让现场的名字,我 - 这似乎工作,我场的 var field = reflect.TypeOf(r).Field(i).Name 获得价值

    1热度

    2回答

    我对Java处理转换的方式有点困惑。 我有字符数组包括0(不是 '0') char[] bar = {0, 'a', 'b'}; System.out.println(String.valueOf(bar)); 当发生这种情况的println方法不输出任何东西。但是,当我将零视为字符时: char[] bar = {'0', 'a', 'b'}; System.out.println(St

    56热度

    2回答

    给定一个函数,是否有可能得到它的名字?你说: func foo() { } func GetFunctionName(i interface{}) string { // ... } func main() { // Will print "name: foo" fmt.Println("name:", GetFunctionName(foo)) }

    6热度

    1回答

    基本上,如果我有一个任意函数的切片或数组,我该如何选择只返回int的数据,或者只选择那些使用int的数据? 我想我需要使用反射包,但只是阅读文档并没有真正帮助我找出如何做到这一点。

    10热度

    3回答

    我正在研究用Go编写的模板系统,这意味着它需要自由使用reflect包。在这个特定的情况下,我需要能够动态调用interface{}上的方法。奇怪的是,只要我的数据是已知类型,我的反射逻辑就能正常工作,但如果数据类型为interface{},则反应逻辑就不会起作用。 下面的例子可以看出main()和Pass()中的逻辑是相同的。唯一的区别是数据是否是已知类型或interface{} 去玩内已知类型

    22热度

    3回答

    在Go中,有没有办法比较两个非零函数指针来测试相等性?我的平等标准是指针平等。如果不是,为什么不允许指针相等? 截至目前,如果我试图这样做的直接的方式: package main import "fmt" func SomeFun() { } func main() { fmt.Println(SomeFun == SomeFun) } 我得到 ./func-poin

    37热度

    4回答

    在Go中,如何在运行时从其类型创建对象的实例?我想你也需要先获得对象的实际type? 我试图做懒惰的实例来节省内存。

    98热度

    4回答

    我很好奇,为什么go不会将[]T转换为[]interface{},因为它会隐式地将T转换为interface{}。这种转换有什么不重要的东西,我错过了吗? 实施例: func foo([]interface{}) { /* do something */ } func main() { var a []string = []string{"hello", "world"}

    0热度

    2回答

    如何在Yii2 设定选择二默认项选择二3.5.x的插件的initSelection方法已过时/移除。 新的initValueText属性与Select2小部件一起提供给 迎合此(例如,基于ajax的加载)。 但initValueText不工作! <div class="col-xs-12"> <?php $categories = [5 => 'test1', 7=>