go 반사 응용

959 단어 테크니컬golang

직접 부호

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라고 쓰기 시작했는데 정상적으로 옮겨다니지 못했습니다. 원소를 짧게 고친 후에 성공했습니다. 반사적인 요구일 수도 있습니다.구체적인 원인은 깊이 연구하지 않았고, 관심 있는 친구는 자세히 연구할 수 있다.괜찮아요. 말씀해 주세요. 감사합니다.

좋은 웹페이지 즐겨찾기