go 반사 응용
직접 부호
package main
import (
"fmt"
"reflect"
)
type EnvKey struct {
RD string
BR string
PT string
AD string
LE string
}
func main() {
//
t := EnvKey{"/dev/ttyUSB0", "19200", "8080", "1105", "20"}
//
s := reflect.ValueOf(&t).Elem()
typeOfT := s.Type()
// , ,
for i := 0; i < s.NumField(); i++ {
f := s.Field(i)
fmt.Printf("%d: %s %s = %v
", i, typeOfT.Field(i).Name, f.Type(), f.Interface())
}
}
하나의 구조체를 정의하여 기구체에 초기값을 부여하고 for순환을 통해 구조체를 훑어보고 구조체 각 원소의 값을 얻는다.
주의: 구조체에서 각 원소의 이름을 정의할 때 예를 들어 구조체의 첫 번째 원소인 RD는 RtuDevice라고 쓰기 시작했는데 정상적으로 옮겨다니지 못했습니다. 원소를 짧게 고친 후에 성공했습니다. 반사적인 요구일 수도 있습니다.구체적인 원인은 깊이 연구하지 않았고, 관심 있는 친구는 자세히 연구할 수 있다.괜찮아요. 말씀해 주세요. 감사합니다.