-1
votes

Est-ce que go supporte des multi-types? (type de génériques)

type MyNumber interface {
    float32, float64, uint, int
}

1 commentaires

Pourquoi le vote en bas?


3 Réponses :


2
votes

existe-t-il un moyen de réduire les types autorisés à une liste spécifique de types [d'une interface vide]?

au moment de la compilation, non.

Vous pouvez choisir d'utiliser une limitation au moment de l'exécution. Cela devrait être évité lorsqu'il existe d'autres alternatives, car elle ne fournit pas autant de sécurité.

Ceci est fait dans la bibliothèque standard dans un certain nombre de places, telles que le maréchaler JSON, qui nécessite un pointeur comme cible.


0 commentaires

1
votes

Vous ne pouvez pas forcer à un ensemble de types de béton au moment de la compilation d'une manière que vous souhaitez.

Ce que vous pouvez faire est d'utiliser des interfaces. Énumérez les méthodes de l'interface que vous attendez des implémentations. Ensuite, cela ne comportera pas ce que le type concret et exécutif est. Vous interagissez avec la valeur uniquement via l'interface, garantie à la compilation de la compilation qu'elle est mise en œuvre par la valeur transmise. P>

E.g. Si vous attendez que la valeur fournisse une valeur int32 code>, utilisez cette interface: p> xxx pré>

Cela ne comportera pas si la valeur transmise a int32 code> ou float64 code> comme type sous-jacent, ou c'est tout ce type complexe. Vous avez besoin d'un int32 code>, et c'est ce que vous obtenez. Les implémentateurs sont responsables comment produire cette valeur. P>

Par exemple: P>

int32 value: 1
int32 value: 2


1 commentaires

Cette approche me permettra de créer une interface avec des méthodes et une totrage, mais de transmettre que l'interface à une méthode nécessitera la structure qui est transmise à la mise en œuvre: "TOINT et TOSTRING", mais ce dont j'ai besoin, c'est "TOINT ou TOSTRING "



0
votes

On dirait que la Go pourrait avoir accès aux génériques et aux types multi-types appropriés en environ 2021:

https://blog.golang.org/generics-next-step https: // www. Infoworld.com/article/3562345/googles-go-language-could-get-Generics-in-2021.html


0 commentaires