Les types somme sont représentables en Kotlin via les sealed classes :
// Dans le même fichiersealedclassPlayer()classWarrior(varstrength:Int):Player()classWizard(varmana:Int):Player()// Pattern matching exhaustifwhen(player){isWarrior->player.strengthisWizard->player.mana}
Après, j'en conviens, c'est peut-être un chouïa moins élégant qu'en TypeScript :
De façon plus générale, et bien qu'étant plus habitué au typage nominal, je trouve incroyablement expressif le typage structurel de TypeScript (je pense entre autres à toi, keyof) ; on a pu faire des choses vraiment sympas avec. Du genre :
Cela peut paraître tout bête, mais je trouve chouette de pouvoir exprimer le fait qu'une structure prenant en charge MyProtocol doive implémenter des handlers de la forme onLeNomDuMessage. Avec bien sûr la vérification des types d'entrée et de sortie.
[^] # Re: We need more
Posté par Letho . En réponse au journal opensara: un nouveau jeu libre. Évalué à 2. Dernière modification le 15 octobre 2021 à 16:22.
Les types somme sont représentables en Kotlin via les sealed classes :
Après, j'en conviens, c'est peut-être un chouïa moins élégant qu'en TypeScript :
De façon plus générale, et bien qu'étant plus habitué au typage nominal, je trouve incroyablement expressif le typage structurel de TypeScript (je pense entre autres à toi,
keyof) ; on a pu faire des choses vraiment sympas avec. Du genre :Cela peut paraître tout bête, mais je trouve chouette de pouvoir exprimer le fait qu'une structure prenant en charge MyProtocol doive implémenter des handlers de la forme onLeNomDuMessage. Avec bien sûr la vérification des types d'entrée et de sortie.