zoukankan      html  css  js  c++  java
  • Golang通过反射拼接一个结构体所有字段

    golang通过反射拼接一个结构体所有字段

    需求

    • 将一个结构体所有字段以"|"连接拼接成字符串

    golang 不同类型拼接成string使用Sprintf比较麻烦,如果一个结构体有上百个字段,一个一个拼接有点要人命,可以通过反射修改所有字段为string再拼接起来.

    实现demo

    package main
    
    import (
    	"fmt"
    	"reflect"
    	"strings"
    )
    
    type Student struct {
    	Name  string `json:"name"`
    	Age   int    `json:"age"`
    	Grade int    `json:"grade"`
    }
    
    func main ()  {                                                                                                                                                                                              
    	student := Student{
    		Name:  "json",
    		Age:   18,
    		Grade: 9,
    	}
    	t := reflect.TypeOf( student)
    	if t.Kind() != reflect.Struct {
    		fmt.Println("Check type error not Struct")
    		return
    	}
    
    	v := reflect.ValueOf(student)
    	str := ""
    	for i := 0; i < t.NumField(); i++ {
    		value := v.Field(i).Interface()
    		str += fmt.Sprintf("%v", value)
    		str += "|"
    	}
    	if strings.HasSuffix(str,"|") {
    		str = str[0 : len(str)-1]
    	}
    	fmt.Println(str)
    }
    
    
    

    输出结果

    json|18|9
    
  • 相关阅读:
    HTML-图片和多媒体
    HTML弹性布局
    HTML定位——绝对定位和相对定位、固定定位
    HTML定位和布局----float浮动
    CSS层叠
    HTML-css样式引用方式
    认识HTML和CSS
    原生js 进度条
    原生js文字滚动 滚动条
    时间轴
  • 原文地址:https://www.cnblogs.com/Kingram/p/12567535.html
Copyright © 2011-2022 走看看