Go에서 인터페이스는 유형이 구현해야 하는 메소드 계약을 정의합니다. 런타임 시 인터페이스와 상호 작용할 때 해당 메서드의 이름에 액세스해야 할 수도 있습니다.
문제:
다음 인터페이스 정의를 고려하세요.
type FooService interface { Foo1(x int) int Foo2(x string) string }
FooService 인터페이스에서 메소드 이름 목록(예: ["Foo1", "Foo2"])을 프로그래밍 방식으로 생성하려면 어떻게 해야 합니까?
답변:
인터페이스 유형에서 메서드 이름 목록을 검색하려면 런타임 리플렉션을 사용할 수 있습니다.
<code class="go">t := reflect.TypeOf((*FooService)(nil)).Elem() var s []string for i := 0; i < t.NumMethod(); i++ { s = append(s, t.Method(i).Name) }</code>
설명:
Playground 예:
https://go.dev/play/p/6cXnZKiKVw1
팁:
"얻는 방법" 문서를 참조하세요. Reflect.인터페이스 유형이요?" 인터페이스의 Reflect.Type을 얻는 방법에 대한 통찰력을 얻으세요.
위 내용은 Go 인터페이스에 정의된 메소드 이름을 프로그래밍 방식으로 어떻게 나열합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!