2017-09-14 10 views
4

Je sais que dans OCaml, on peut créer une classe procédant comme suit:POO - Comment peut-on créer une classe dans ReasonML

class stack_of_ints = 
    object (self) 
    val mutable the_list = ([] : int list) (* instance variable *) 
    method push x =      (* push method *) 
     the_list <- x :: the_list 
    end;; 

Cependant, je me bats sur la recherche de la documentation sur la façon de le faire en Raison. Je vous remercie.

Répondre

5

Les classes et les objets ne sont pas très bien documentés car ces fonctionnalités ajoutent beaucoup de complexité pour (généralement) très peu d'avantages par rapport à une approche plus idiomatique. Mais si vous connaissez la syntaxe OCaml pour quelque chose, vous pouvez toujours voir ce que l'équivalent Reason est en le convertissant avec le terrain de jeu en ligne "Try Reason". Voir your example here, qui nous donne ceci:

class stack_of_ints = { 
    as self; 
    val mutable the_list: list int = []; /* instance variable */ 
    pub push x => 
    /* push method */ 
    the_list = [x, ...the_list]; 
}; 
+1

Les classes ont leurs cas d'utilisation, elles sont juste assez rares. – RichouHunter