PHP 프로그래밍에서는 기본 유형을 기반으로 유형을 반영하는 것이 중요한 기술입니다. Reflect.Kind는 PHP에서 제공하는 리플렉션 클래스 라이브러리의 속성으로, 변수의 데이터 유형을 결정하는 데 사용할 수 있습니다. Reflect.Kind를 사용하면 변수의 유형을 쉽게 얻고 해당 작업 및 처리를 수행할 수 있습니다. PHP 개발자의 경우 이 기술을 익히면 리플렉션 메커니즘을 더 잘 이해하고 사용하며 코드의 가독성과 유연성이 향상됩니다. 이 기사에서 PHP 편집자 Baicao는 기본 유형을 기반으로 Reflect.Kind를 얻는 방법을 자세히 소개하고 독자가 이 지식 포인트를 더 잘 익히는 데 도움이 되는 몇 가지 실용적인 예와 기술을 공유합니다.
인터페이스를 구현하지만 구현이 기본 유형을 기반으로 하는 유형에 대해 Reflect.kind를 Reflect.interface로 사용하고 싶습니다. type id string
이 질문에 대한 또 다른 대답은 kind()를 호출할 때 Reflect.interfaces를 반환하는 모든 유형의 Reflect.type을 얻는 방법일 수 있습니다.
바둑 놀이터의 전체 예는 다음과 같습니다.
type ID interface { myid() } type id string func (id) myid() {} func main() { id := ID(id("test")) fmt.Println(id) fmt.Println(reflect.TypeOf(id)) // How to get the kind to return "reflect.Interface" from the var "id"? fmt.Println(reflect.TypeOf(id).Kind()) }
reflect.typeof()
(和 reflect.valueof()
) 需要一个 接口{}
。基本上,无论您传递给 reflect.typeof()
的值是什么,如果它还不是接口值,它将隐式包装在 interface{}
中。如果传递的值已经是接口值,则其中存储的具体值将作为 interface{}
넘어가세요.
인터페이스에 대한 포인터가 의미가 있는 드문 경우 중 하나인 이러한 "재패킹"을 피하려면 실제로 여기서는 피할 수 없습니다. 인터페이스 값에 대한 포인터를 전달해야 합니다.
따라서 인터페이스에 포인터를 전달하면 포인터는 "point-to-type"의 유형 설명자를 얻기 위해 interface{}
值中。您可以使用 type.elem()
로 래핑됩니다. 즉, 포인터 유형의 유형 설명자가 될 포인터 유형의 요소 유형입니다. 당신이 찾고 있는 인터페이스 유형. p>
예:
으아악출력 내용(go 놀이터에서 사용해 보세요):
으아악관련 질문 보기: go에서 Reflect.valueof()와 value.elem()의 차이점은 무엇인가요?
위 내용은 기본 유형을 기반으로 하는 유형의 Reflect.Kind 가져오기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!