/ / Quel est l'équivalent de la méthode de «méthodes» de Ruby chez Golang? - rubis, méthodes, go, réflexion

Quel est l'équivalent du Golang de la méthode «méthodes» de Ruby? - rubis, méthodes, va, réflexion

Je joue avec Golang et je veux savoir s’il existe un moyen de répertorier toutes les méthodes ou propriétés que je peux utiliser avec une variable. some_variable.methods pour obtenir toutes les méthodes définies sur some_variable. Y a-t-il une chose semblable à Golang?

Réponses:

6 pour la réponse № 1

Oui, vous pouvez. Avec réflexion, chacun reflect.Type object peut énumérer toutes les méthodes exposées par le type réel. mais ce n’est pas une chose très courante ou idiomatique à faire dans Go:

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

Cela peut aussi être fait sur reflect.Value, selon ce dont vous avez besoin.

Mais la vraie question est: qu'essayez-vous deatteindre ici? Essayez-vous de vérifier si un type implémente une interface ou quelque chose comme ça? Il existe probablement une solution plus simple à votre objectif. Quel est votre objectif actuel?


2 pour la réponse № 2

Si vous n’avez besoin que de cela en phase de développement gourou outil de développement peut vous aider beaucoup.