golang 유형 단언과 반사

1381 단어
session ("user") 은 다른 페이지에서 설정된 것으로 모델스를 저장합니다.User 유형의 struct var user models.User
u := this.GetSession("user")는session user를 얻었습니다. 여기 u는interface입니다.
user = u. (models.User) 유형 단언, 이 U의 유형이 모델스라고 단언합니다.User 형식입니다. 그리고 다른 모델에 값을 부여하겠습니다.User 유형의 변수
fmt.Println(user.Id) 여기서session user의 값에 접근할 수 있습니다
u := this.GetSession("user")//인터페이스 v 가져오기: = reflect.ValueOf(u)//이 변수에 반사되는 유형 fmt.Println(v.Field(0).Int ()//0칸에 저장된 값 fmt.Println(v.Elem().Field(1).String()//첫 번째 칸에 저장된 값 t: = reflect.TypeOf(u)//이 변수의 유형 fmt를 받습니다.Println(t)
var acc models.Account
acc.Username = "hello"
val := reflect.ValueOf(acc).FieldByName("Username")//반사에서 Username 필드를 찾습니다.
var acc models.Account acc.Username = "hello"p := reflect.Value Of (&acc.Username)//반사 수치 v: = p.Elem ()//반사 대상 p는 주소를 찾을 수 있는 것이 아니지만 p를 설정하기를 원하지 않습니다. (실제) 는 *p입니다.p가 가리키는 내용을 얻기 위해 값의 Elem 방법을 호출하여 바늘에서 간접적으로 가리키는 다음에 반사 값을 저장한 결과를 v.Setstring("worldv.Setstring("world")//반사하여 대상에게 fmt.Println(acc)이라고 한다.
func test(a string) string {
	return a
}

func main() {
	a := "sssssss"
	args := []reflect.Value{reflect.ValueOf(a)}//    []reflect.Value
	c := reflect.ValueOf(test).Call(args)//      ,   
	fmt.Println(c)
}

반사 형식 v: = reflect.ValueOf(user) fmt.Println(v.Type().String()//반사되는 유형

좋은 웹페이지 즐겨찾기