>  기사  >  백엔드 개발  >  이것이 제네릭의 유효한 사용 사례입니까?

이것이 제네릭의 유효한 사용 사례입니까?

PHPz
PHPz앞으로
2024-02-06 08:10:12523검색

이것이 제네릭의 유효한 사용 사례입니까?

질문 내용

이제 내 코드에는 다음과 같은 반복적인 작업이 잔뜩 있습니다.

으아악

내 문제는 매개변수의 개수/유형이 다른 새 fp 유형을 추가할 때마다 이 메서드를 다시 정의해야 하므로 코드에서 데코레이터를 4~5번 다시 정의하게 되고 아마도 Do가 필요할 수 있다는 것입니다. 더. 데코레이터로 교체하고 싶어요

으아악

그리고 fp가 유형을 주장하도록 하세요. 그러나 인터페이스를 사용하지 않거나 성능 문제를 일으키는 것에 대해 많이 보았기 때문에 이것이 문제를 일으키는지/나쁜 사용 사례인지는 확실하지 않습니다.


정답


제네릭은 어떤 이유로든 도움이 되지 않습니다. 특히 제네릭은 유형에만 도움이 되고 매개변수의 숫자에는 도움이 되지 않습니다. 개인적으로 저는 이 문제에 대해 다른 방식으로 접근하겠습니다.

으아악

클로저를 사용해 호출하세요:

으아악

호출 사이트에서는 약간 장황하지만 모든 함수 서명(매개변수 수 또는 유형, 반환 값 수 또는 유형)에 대해 절대적으로 작동합니다. 메소드 호출에서도 작동합니다. 결과에 따라 몇 가지 논리를 수행하는 것처럼 들리므로 다음과 같이 할 수도 있습니다.

으아악

데코레이팅된 함수에 해당 bool보다 더 많은 반환 값이 있거나 다른 논리를 사용하려는 경우에도(예: 오류를 반환하는 경우 != 转换为 bool),它仍然可以工作。 nil를 사용하고 싶습니다).

위 내용은 이것이 제네릭의 유효한 사용 사례입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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