중화사전망 - 자전 검색 - 반사 반사 및 대칭
반사 반사 및 대칭
/* reflection mirror Java 의 reflection and reflection reflection 은 런타임에 유형 동작을 감지, 액세스 또는 수정하는 기능입니다. 일반적으로 정적 언어 유형의 구조 및 메서드 호출은 컴파일 시 결정됩니다. 개발자가 할 수 있는 일은 제어 흐름 (if, switch) 을 사용하여 어떤 설정을 할 것인지 또는 어떤 메서드를 호출할지 결정하는 것입니다. 반사 기능을 사용하면 다시 실행할 때 특정 조건을 통해 실시간으로 메서드를 호출할 수 있으며, 속성과 메서드를 특정 유형의 동적 설정에 추가할 수도 있습니다. 매우 유연하고 강력한 언어 기능만 사용할 수 있습니다. Object-C 에서는 "반사" 라는 단어가 자주 언급되지 않습니다. 왜냐하면 Object-C 는 일반 반사보다 더 유연하고 강력하기 때문입니다. 예를 들어 NSClassFromString, @ selector ("methodname") swift 는 Object-C 의 런타임 부분을 포기했으며 기능이 훨씬 약했습니다. 하지만 반사와 관련된 내용도 있다. 이제 암시 적 변환은 mirror */structpersistence {letname: string letage: int} letxiaoming = persistence (ne Mirror 는 perssionetr = mirror (reflecting: Xiaoming) print ("Xiaoming is \ (r.display style) "//"Xiao is optional (struct) "print count)) for child in R. children {print (child.value) ")/* 속성 수: 2 속성 이름: Optional(“name"), 값: XiaoMing 속성 이름: Optional(“age "") , value: any) 공용 유형 별칭 children = anycollection 은
이 값은 여러 요소로 구성된 중첩 연동일 수 있습니다. 예를 들어, 속성 값이 배열 또는 사전인 경우 중첩된 형식입니다.
물체에서 반사되는 거울의 경우, 그것은 완전한 정보를 포함하고 있다. 즉, 런타임에 Swift 유형 (또는 NSObject 클래스) 인스턴스의 속성 정보를 미러링하여 이해할 수 있습니다.
응용 프로그램 1:
모든 모델 객체는 해당 JSON 설명을 생성합니다. 먼저 깊이 처리를 기다리는 미러 값에 액세스하여 속성의 valueType 에 따라 다른 형식으로 분류할 수 있습니다.
애플리케이션 2:
ValueForKey: 의 값을 계산합니다 (예: swift 객체의 Object-C). 얻은 속성의 이름을 먼저 얻어야 하는 키 값과 비교하기만 하면 됩니다.
*/
Func value froma(_ object:Any, key: string)-> 있어요? {
거울 = 거울 (반사: 오브젝트)
거울 속의 아이에게 주다. 아이 {
Let(target key, target mirror)=(child. label, child.value)
If key == targetKey {
대상 미러 반환
}
}
0 을 반환합니다
}
//테스트
Name = value froma(xiaoMing, key: "name") 를? 문자열 {
Print ("키워드로 값 가져오기: \ (이름)")
}
/*
Mirror 는 아직 불안정하므로 실제 개발에 적용하지 않도록 주의해야 합니다.
*/