나는 Golang과 놀고 있는데 변수에 사용할 수있는 모든 메서드 나 속성을 나열 할 수있는 방법이 있는지 알고 싶습니다. 루비에서는 에 정의 된 모든 메소드를 얻기 위해 간단히 some_variable.methods
을 사용할 수 있습니다. Golang과 비슷한 점이 있습니까?Golang이 Ruby의 "메소드"메소드와 동일한 것은 무엇입니까?
답변
예, 가능합니다. 반영을 통해 각 reflect.Type
개체는 실제 형식이 노출하는 모든 메서드를 열거 할 수 있습니다.
import (
"fmt"
"reflect"
)
type Foo struct {
}
func (f Foo) Bar() {
}
func (f Foo) Baz() {
}
func main() {
t := reflect.TypeOf(Foo{})
for i := 0; i < t.NumMethod(); i++ {
fmt.Println(t.Method(i).Name)
}
}
// Output:
// Bar
// Baz
이것은 또한 당신이 필요에 따라 reflect.Value
에 수행 할 수 있습니다하지만 이동에 할 수있는 매우 일반적인 또는 관용적 인 것은 아니다.
하지만 진짜 질문은 - 여기서 무엇을하려고합니까? 유형이 인터페이스 또는 이와 유사한 것을 구현하는지 확인하려고합니까? 아마도 목표에 대한보다 간단한 해결책이있을 것입니다. 실제 목표는 무엇입니까?
감사합니다. Golang을 배우면서 변수에 사용할 수있는 모든 메서드 나 속성을 빠르게 살펴보고 싶습니다. – user130268
@ user130268 표준 라이브러리의 문서는 더 나은 해결책입니다. IMHO :) –
개발 단계에만이 도구가 필요한 경우 개발 도구 guru이 필요합니다.
- 1. Ruby의 SciPy와 같은 것은 무엇입니까?
- 2. Golang이 동일한 독자에게서 여러 번 읽음
- 3. python/ruby의 검사 방법에서 perl의 repr에 해당하는 것은 무엇입니까
- 4. Ruby의 "inspect"와 동일한 Python은 무엇입니까?
- 5. Ruby의 fork 블록과 동일한 Python은 무엇입니까? 루비
- 6. CLOS의 생성자와 동일한 것은 무엇입니까?
- 7. JQuery에서 document.getElementbyId와 동일한 것은 무엇입니까?
- 8. PHP의 preg_quote와 동일한 것은 무엇입니까?
- 9. OpenCV에서 imagesc와 동일한 것은 무엇입니까
- 10. Unity에서 Ninject.IKernel과 동일한 것은 무엇입니까
- 11. SQL에서 배열과 동일한 것은 무엇입니까?
- 12. X11에서 SetForegroundWindow와 동일한 것은 무엇입니까?
- 13. Ember는 ruby의 method_missing과 동일한 기능을합니까?
- 14. Ruby의 장교와 동일한 Python이 있습니까?
- 15. golang이 구조체 내부의 슬라이스에 추가되었습니다.
- 16. Golang이 DB를 사용하지 않습니다
- 17. Ruby의 실제 문제는 무엇입니까?
- 18. 동일한 프로세스에서 멀티 스레드가 공유하는 것은 무엇입니까?
- 19. PHP 클래스의 break 문과 동일한 것은 무엇입니까?
- 20. Java에서 C#의 System.Drawing.Bitmap과 동일한 것은 무엇입니까
- 21. Gradle에서 Ant taskdef와 동일한 것은 무엇입니까?
- 22. 반환 함수에서 end = ""와 동일한 것은 무엇입니까?
- 23. Graph Api에서 url_like와 동일한 것은 무엇입니까?
- 24. Lighttpd에서 Apache의 Action/AddHandler와 동일한 것은 무엇입니까?
- 25. MySQL에서 'go'와 동일한 것은 무엇입니까? TSQL에서
- 26. Moo에 대해 MooseX :: NonMoose와 동일한 것은 무엇입니까?
- 27. 다이나믹스 AX에서 bigint와 동일한 것은 무엇입니까?
- 28. jQuery에서이 Ajax 코드와 동일한 것은 무엇입니까?
- 29. Rails에서 HTML의 입력 태그와 동일한 것은 무엇입니까?
- 30. Java의 Objective-C '태그'속성과 동일한 것은 무엇입니까?
글쎄, 당신은 "반사"로 질문 태그를 지정 했으므로 어디서 볼 것인지 알 것입니다 :'패키지 반영'. 특히 https://golang.org/pkg/reflect/#Value.Method. – Volker