Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 具有多对象模型的程序设计语言_R_Oop_Programming Languages - Fatal编程技术网

R 具有多对象模型的程序设计语言

R 具有多对象模型的程序设计语言,r,oop,programming-languages,R,Oop,Programming Languages,我知道编程语言R有多个对象模型(即S3、S4、参考类、S6)。我想知道是否还有其他编程语言也使用多个对象模型 是什么证明了这种复杂性?它与向后兼容性有关还是有其他优势?Python2有两个对象模型(新样式和经典类)。但是,这主要用于向后兼容性(请参阅)。您可以愉快地使用R,而无需处理引用类。那么,复杂性问题在哪里?不管怎样,这似乎离题了。谢谢你的反馈。据我所知,S3经常被使用,而另外两个模型的存在相当模糊。我主要感兴趣的是其他模型为什么存在?对我来说,感觉有点像R的这些功能只是属于OO语言?如果

我知道编程语言
R
有多个对象模型(即S3、S4、参考类、S6)。我想知道是否还有其他编程语言也使用多个对象模型


是什么证明了这种复杂性?它与向后兼容性有关还是有其他优势?

Python2有两个对象模型(新样式和经典类)。但是,这主要用于向后兼容性(请参阅)。

您可以愉快地使用R,而无需处理引用类。那么,复杂性问题在哪里?不管怎样,这似乎离题了。谢谢你的反馈。据我所知,S3经常被使用,而另外两个模型的存在相当模糊。我主要感兴趣的是其他模型为什么存在?对我来说,感觉有点像R的这些功能只是属于OO语言?如果它是离题的,你能推荐另一个StackExchange论坛吗?S3有一些严重的限制。通常,这些都无关紧要,但有时您需要能够,例如,根据多个参数的类来分派方法。为什么您会假设您的问题存在堆栈交换站点?R中的这些不同系统代表不同的面向对象方法。S3硬连接到R中,并在每个交互会话中使用。S4试图对类进行形式化和封装,并允许多次分派。引用类是对更全面的封装OO系统的一种尝试,它具有传递引用语义。其他面向对象系统,如S6和ggproto,都是通过软件包实现的附加组件。原因主要是历史原因,但在我看来,R的优势在于它可以创建多个不同但一致的OO系统。