2010-11-09 4 views
2

Il a réified génériques ... comment est-ce mis en œuvre? Toute différence significative par rapport aux génériques de C#?Comment fonctionnent les génériques au Gosu?

+0

Aussi, je suggère de retag ceci comme "gosu-lang" ou quelque chose à cet effet. La balise gosu existante était utilisée pour la bibliothèque graphique du même nom. –

+0

@Mike - terminé. Aussi demandé sur meta - http://meta.stackexchange.com/questions/69940/what-should-be-done-with-the-gosu-tag – ripper234

+0

Cool, merci. J'aurais dû y regarder d'abord, comme d'habitude. :) –

Répondre

1

Différence par rapport à C# génériques: pour les différentes instanciations d'une classe générique, C# génère des classes à l'exécution. Gosu ne le fait pas: une classe générique correspond à une classe utilisée lors de l'exécution. Les informations de type sont conservées dans les objets, pas dans les classes. Ainsi, C# peut spécialiser le code (par exemple pour les types primitifs), tandis que Gosu ne le peut pas. Par exemple, Gosu doit envelopper les objets dans des objets pour les mettre dans une liste.

0

Ayant récemment regardé Gosu, et n'a pas vraiment écrit de vrais programmes à l'intérieur; le mieux que je puisse dire est que les génériques réifiés se réfèrent au fait que Gosu conserve le type original de l'objet génifié.

En Java, il n'y a pas moyen de recourir à la réflexion pour savoir quel est le type d'origine de quelque chose passé dans une fonction générique.

Regardez le bas de this page dans la documentation. Il ne dit pas réellement comment le faire, mais juste que c'est possible.

Jetez aussi un coup d'œil à ces questions: