美文网首页GoGo语言实践
Golang reflect 反射 struct 动态获取tim

Golang reflect 反射 struct 动态获取tim

作者: 承诺一时的华丽 | 来源:发表于2020-02-25 15:53 被阅读0次

直接上代码

package main

import (
    "fmt"
    "reflect"
    "testing"
    "time"
)

type Stu struct {
    Str  string
    Time time.Time
}

func TestTime(t *testing.T) {
    stu := Stu{Str: "test", Time: time.Now()}
    print(stu)
}

func print(t interface{})  {
    getType := reflect.TypeOf(t)
    getValue := reflect.ValueOf(t)
    for i := 0; i < getType.NumField(); i++ {
        field := getType.Field(i)
        switch field.Type.String() {
        case "time.Time":
            fmt.Printf("%s: %v = %v\n", field.Name, field.Type, getValue.Field(1).Interface().(time.Time))
            break
        default:
            value := getValue.Field(i)
            fmt.Printf("%s: %v = %v\n", field.Name, field.Type, value.String())
            break
        }
    }
}

  • test结果
=== RUN   TestTime
Str: string = test
Time: time.Time = 2020-02-25 15:51:28.1895942 +0800 CST m=+0.009973701
--- PASS: TestTime (0.02s)
PASS

Process finished with exit code 0

相关文章

  • Golang reflect 反射 struct 动态获取tim

    直接上代码 test结果

  • Golang 反射实现依赖注入

    Golang 反射实现依赖注入 Coding/Golang #Golang #Golang/reflect 依赖注...

  • go 的反射 reflect

    Golang语言实现了反射,反射机制就是在运行时动态的调用对象的方法和属性,官方自带的reflect包就是反射相关...

  • go语言反射reflection

    反射:可以在运行时动态获取变量的相关信息 go语言中通过reflect包操作反射 获取基本类型 例子: 输出结果:...

  • golang:reflect反射

    reflect反射 1.使用场景 当一些类型未知,有多种类型需要统一处理时,考虑使用反射来做多种情况的统一判断处理...

  • Golang反射reflect

    reflect反射,可以通过reflect反射结构体所包含的属性和方法,然后进行一些赋值和方法的调用,灵活度比较高...

  • Python初学笔记之日期和时间

    1、获取时间需要引入时间库 time.struct_time 属于struct_time元组,struct_tim...

  • 反射

    反射初识 reflect对象获取接口变量信息 reflect对象设置实际变量的值 reflect对象进行方法的调用

  • Golang 反射的使用

    声明: 转载自golang reflect包,反射学习与实践[https://segmentfault.com/a...

  • golang reflect 反射包

    基础类型描述 Type Kindtype Kind uint 基础类型常量const ( Invalid K...

网友评论

    本文标题:Golang reflect 反射 struct 动态获取tim

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