【发布时间】:2023-03-03 14:57:02
【问题描述】:
我已经阅读了上面的帖子,现在我正在尝试通过一次处理多个项目来扩展它
package main
import (
"fmt"
"reflect"
)
type BaseStats struct {
value1 int
value2 byte
value3 int
value4 byte
}
func StatsCreate(stats BaseStats) {
v := reflect.ValueOf(stats)
val := make([]interface{}, v.NumField())
for i := 0; i< v.NumField(); i+=2 {
val[i+0] = v.Field(i+0).Interface().(int)
val[i+1] = v.Field(i+1).Interface().(byte)
fmt.Printf("%v %v", val[i+0], val[i+1])
}
}
func main() {
StatsCreate(BaseStats{20, '%', 400, '$'})
}
我之前遇到的错误:panic: reflect.Value.Interface: cannot return value obtained from unexported field or method
【问题讨论】:
-
问题正是错误所说的,您无法反映未导出的字段。
-
value1->Value1, ... golang.org/ref/spec#Exported_identifiers