1 回答
TA贡献1821条经验 获得超4个赞
为什么不将数据读入结构?下面的代码使用反射来做到这一点(尽管没有检查字段的存在或类型)。
package main
import (
"bufio"
"fmt"
"reflect"
"strings"
)
type Entry struct {
Title string
Content string
Metadata string
Comments string
}
func main() {
var input string = `title:stack|content:overflow|metadata:53|comments:none
title:google|content:website|metadata:213|comments:Demos
`
var result = make(map[string]Entry)
scanner := bufio.NewScanner(strings.NewReader(input))
for scanner.Scan() {
data := scanner.Text()
data_arr := strings.Split(data, "|")
entry := Entry{}
for _, n := range data_arr {
data_subdoc := strings.Split(n, ":")
key, value := data_subdoc[0], data_subdoc[1]
fmt.Println(key, value)
field := strings.Title(key)
reflect.Indirect(reflect.ValueOf(&entry)).FieldByName(field).SetString(value)
}
result[entry.Metadata] = entry
}
fmt.Printf("%+v\n", result["53"])
fmt.Printf("%+v\n", result["213"])
}
- 1 回答
- 0 关注
- 107 浏览
添加回答
举报