Episodio

El sistema de clases R6

con Winston Chang

useR!2017: El sistema de clases R6

Palabras clave: clases, programación orientada a objetos, R6, clases de referencia
Páginas web: https://CRAN.R-project.org/package=R6, https://github.com/wch/R6
R6 es una implementación de un sistema de programación clásico orientado a objetos para R. En la OOP clásica, los objetos tienen estado mutable y contienen métodos para modificar y acceder al estado interno. Esto contrasta con el estilo funcional de la programación orientada a objetos proporcionada por los sistemas de clase S3 y S4, donde los objetos son (normalmente) no mutables, y los métodos para modificar y acceder a su contenido son externos a los propios objetos.
R6 tiene algunas similitudes con el sistema integrado de clases de referencia de R. Aunque la implementación de R6 es más sencilla y ligera que la de las clases de referencia, ofrece algunas características adicionales, como miembros privados y una herencia sólida entre paquetes.
En esta charla analizaré cuándo tiene sentido usar R6 en lugar de OOP funcional, demostrar cómo usar el paquete y explorar parte del diseño interno de R6.