golang 유형 단언과 반사
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()//반사되는 유형
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.