ruby什么时候才能成为特征类
在定义单例方法之前是否存在Eigenclasses
在对象或类上.即它们是否总是存在或存在 当一个单例方法或类方法定义? 解决方法
每个对象总是有一个单例类.期.没有ifs,没有buts,没有例外.
根据编译器或解释器的巧妙程度,它可能会也可能不会执行某些性能优化.但是像所有性能优化一样,那些不允许更改程序的结果,所以即使这些性能优化确实导致特定单例类实际上不存在的某些状态,程序仍然必须表现得好像它确实存在,所以你无论如何也无法说出来.毕竟,这几乎就是“性能优化”的定义. 一些Ruby实现可能会做一些优化,其他可能会做其他优化,有些甚至可能根本不做任何优化.你无法从你的计划结果中得知,你不应该在意,你一定不在乎. 例如,YARV执行以下优化: >由于几乎没有对象具有单例方法,因此为每个对象创建单例类将浪费内存,因此懒惰地创建单例类:当您创建单例方法(def foo.bar或Object#define_singleton_method)时,打开时单例类(类<< foo),当你要求一个对象的单例类(Object#singleton_class)时. 但这是YARV的私人内部实施细节. JRuby可能采用不同的方式. IronRuby可能采用不同的方式. MacRuby可能会采用不同的方式. MRuby可能会采用不同的方式.黄玉可能会采用不同的方式.鲁宾尼斯可能会采用不同的方式. MagLev可能采用不同的方式.甚至YARV的下一个补丁级也可能采用不同的方式. 如果你看一下单身人士课程就在那里.如果你不看它,它是否在那里并不重要.所以,从语义上讲,它始终存在. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |