美文网首页Golang Code Pieces
根据结构体名字获取结构体对象

根据结构体名字获取结构体对象

作者: yanjusong | 来源:发表于2019-06-22 17:54 被阅读0次
package main

import (
    "fmt"
    "reflect"
)

type Foo struct {
    FooID int
}

type Bar struct {
    BarID int
}

func init() {
    structMap = make(map[string]interface{})
    structMap["Foo"] = Foo{}
    structMap["Bar"] = Bar{}
}

// 用于保存实例化的结构体对象
var structMap map[string]interface{}

func getObj(structName string) interface{} {
    if i, ok := structMap[structName]; ok {
        t := reflect.TypeOf(i)
        return reflect.New(t)
    }

    return nil
}

func main() {
    b := getObj("Bar")
    fmt.Printf("%+v\n", b)

    f := getObj("Foo")
    fmt.Printf("%+v\n", f)

    none := getObj("hello")
    fmt.Printf("%+v\n", none)
}

相关文章

  • 根据结构体名字获取结构体对象

  • go反射reflect

    如图定义一个结构体: 反射基本使用 代码: 反射获取结构体cat中的字段值与tag值 测试: 根据类型创建对象 根...

  • 结构体

    结构体初识 结构体指针 结构体的匿名字段 结构体嵌套 Go语言中的OOP

  • OC总结篇 - OC对象及方法

    1.OC对象 = 结构体id对象 = objc_object结构体继承类对象 = objc_class结构体 ob...

  • 结构体的使用

    定义结构体 struct 结构体名称{类型 名字;类型 名字;类型 名字;类型 名字;.........

  • 反射机制

    获取Class对象 Class对象其实本质上就是一个结构体,这个结构体中的成员变量还是自己,这种设计方式非常像链表...

  • Swift 结构体 与 类

    结构体 一、结构体 是值类型 二、结构体的存储位置 结构体的存储位置 根据不同情况来分1、如果结构体(值类型)在...

  • 结构体操作

    1.动态创建一个结构体,里面有指针,为指针对象创建内存 结构体定义 释放结构体

  • go结构体(struct)和方法(method)

    结构体(struct) go中没有对象这一概念,所以采用了结构体的概念,结构体在go中有着非常重要的位置。结构体是...

  • [C]C语言教程(二)-跟着旭哥学C

    结构体 定义: struct Student{ // 定义结构体Student, stu是创建的对象char a[...

网友评论

    本文标题:根据结构体名字获取结构体对象

    本文链接:https://www.haomeiwen.com/subject/aayvqctx.html