Envoyé par
bredelet
Pour l'exemple du switch (III-A), je suppose qu'il y a des problèmes de concurrence si la variable est déclarée shared? Mais dans la déclaration je ne vois pas shared. Peux-tu expliquer?
Tant que la
référence n'est pas variable il n'y a aucun soucis. Le fait qu'elle soit "shared" ou pas ne change rien dans ce cas.
Envoyé par
bredelet
Pourquoi n'est-il pas possible d'étendre un type déclaré avec le mot-clef alias, il semble que ce serait utile?
Je ne suis pas le concepteur du langage, je ne pourrais donc pas répondre à cette question. Pose-la directement à Gavin King sur
le forum.
Avec la sortie de la 1.1, il est possible que les choses aient évolué.
Envoyé par
bredelet
Pour moi, la référence ou fonction fait partie d'une API si elle est exposée, donc tout a fait le contraire de ce qui est écrit.
Effectivement c'est très mal dit. Ce que je voulais dire, c'est que si un élément est exposé, il fait alors partie d'une API et l'inférence sera interdite.
Envoyé par
bredelet
Si c'est le cas on ne peut pas faire:
GeneriqueTypeOptionnel generiqueTypeOptionnel = GeneriqueTypeOptionnel<BougliBougla>();
N'est-ce pas?
Effectivement cela n'est pas possible. Pour omettre le type paramétré, il faut que ce soit le type par défaut.
Envoyé par
bredelet
Il semble que "object" déclare un singleton, c'est bien ça?
Effectivement, mais au delà du simple singleton, un "object" est aussi une définition de classe. Alors qu'un singleton en Java sera simplement une instance unique de la classe à laquelle il appartient. Les deux sont décorrélés.
Ce qui pose d'ailleurs des problèmes dans la gestion des énumérations dans la version 1.0 de Ceylon.
Envoyé par
bredelet
Dans IV-C, il est dit que hériter de la même interface avec des paramètres génériques differents n'est possible que "si, et seulement si le type est covariant"
mais c'est suivi d'un exemple avec des types contravariants, j'ai du mal à suivre:
Effectivement, le problème ce n'est pas qu'ils soient covariants ou contravariants mais qu'ils ne soient pas "invariants".
Envoyé par
bredelet
Que signifient + et * dans ces déclarations?
1 2
| {Object+} liste
{Noeud*} noeuds |
Il s'agit de séquences. Elles seront abordées dans le chapitre "V. Collections".
Envoyé par
bredelet
Dans la section III-A, je suppose que variableUnion réfère à demoUnion déclaré au-dessus?
Effectivement, il s'agit d'un problème dans le premier exemple (Voir le code source sous
GitHub)
Encore merci pour toutes tes remarques, je ne manquerai pas de corriger l'articles dans les jours qui viennent.
0 |
0 |