J'imagine que d'autres langages peuvent essayer de trouver un ancêtre commun, genre Object (je n'ai pas d'exemple d'un tel langage en tête).
Scala.
Mais bon celui qui m'écrit ça comme fonction prend une tarte. Dans un cas comme ça, on écrit un ADT, genre (en simplifié pour le boilerplate Scala, et modifié pour montrer le mix classe avec valeur interne / singleton) :
sealedabstractclassTemperaturefinalcaseclassHot(value:String)extendsTemperature// le cas "12" mais avec la valeur histoire decaseobjectAbsoluteZeroextendsTemperature// le cas >=-273 que j'imagine être une erreur et devrait être <=caseobjectColdextendsTemperature// le nulldefgetTempCelsius(raw:Int):Temperature=if(raw>=12)Hot(raw.toString)elseif(raw<=-273)AbsoluteZeroelseCold
[^] # Re: et si plusieurs return avec différents types
Posté par Sufflope (site web personnel) . En réponse au journal Non, l'inférence de types n'est pas du typage faible. Oui, elle rend les programmes plus lisibles. Évalué à 6.
Scala.
Mais bon celui qui m'écrit ça comme fonction prend une tarte. Dans un cas comme ça, on écrit un ADT, genre (en simplifié pour le boilerplate Scala, et modifié pour montrer le mix classe avec valeur interne / singleton) :