>  기사  >  백엔드 개발  >  가변 함수에 전달된 일반 구조의 특정 필드에 액세스

가변 함수에 전달된 일반 구조의 특정 필드에 액세스

WBOY
WBOY앞으로
2024-02-15 15:42:231074검색

가변 함수에 전달된 일반 구조의 특정 필드에 액세스

php 편집기 딸기는 가변 매개변수 기능에 대한 액세스를 전달하기 위한 특정 필드의 일반적인 구조를 소개합니다. 가변 함수는 가변 개수의 매개변수를 허용하는 함수이지만 실제 응용에서는 특정 필드의 값을 이러한 함수에 전달해야 하는 경우가 많습니다. 이 일반 구조를 사용하면 가변 함수에 대한 액세스를 쉽게 전달하고 특정 필드의 값을 지정할 수 있으므로 보다 유연하고 정확한 매개변수 전달이 가능합니다. 이 공통 구조는 코드를 크게 단순화하고 가독성과 유지 관리성을 향상시킬 수 있습니다.

질문 내용

foo 的通用 struct:

이라는 파일이 있다고 가정해 보겠습니다. 으아악

가변 함수가 있는데 다음과 같이 일부 foos 传递给它。它们可以是任何类型的 foo。我的理解是,因为 foo[int]foo[string] 不同,所以我需要将省略号定义为 any 유형을 변환하고 싶습니다.

으아악

이것은 실제로 작동합니다.

으아악

제 문제는 각각의 foo 中的 data 字段。但是如果我像这样定义 bar ,

에 구체적으로 액세스하고 싶다는 것입니다. 으아악

컴파일러는 things 可能是任何东西,因此不能保证它们具有 data 필드 때문에 당연히 화를 낼 것입니다.

나는 알았어 data 的字段,因为我总是传递 foos,但我不能指定我只传递 foos라는 것이 있을 거라고, 이렇게

으아악

foo 유형이 지정되지 않았기 때문입니다.

지정되지 않은 양의 foo 传递给 bar,然后访问 data 字段?

解决方法

一种解决方案似乎是使用反射并使用 fieldbynamebar에 전달한 다음 data 필드에 액세스하는 방법은 무엇입니까?

해결 방법things 中的所有内容实际上都是某种 foo

한 가지 해결책은 리플렉션을 사용하고 fieldbyname을 사용하여 필드에 액세스하는 것 같습니다. 🎜 으아악 🎜이것이 어떤 이유로 방해 및/또는 위험으로 간주될지 모르겠습니다. 아마도 things 에 있는 모든 것이 실제로 일종의 🎜 인지 확인하기 위해 몇 가지 검사를 해야 할 것입니다. 그렇지 않으면 존재하지 않는 필드에 액세스하려고 할 수도 있습니다. 🎜

위 내용은 가변 함수에 전달된 일반 구조의 특정 필드에 액세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
이전 기사:Go의 날짜 형식다음 기사:Go의 날짜 형식