golang 不同类型拼接成string使用Sprintf比较麻烦,如果一个结构体有上百个字段,一个一个拼接有点要人命,可以通过反射修改所有字段为string再拼接起来.
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
原文:https://www.cnblogs.com/Kingram/p/12567535.html