锁定老帖子 主题:ruby中标志的必然
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-02-16
注册终于满了三天,终于可以动手写BLOG了,有点郁闷,javaEye无论从哪方面来看,都是不错的社区,唯一让俺觉得有点烦的就是发帖的这个限制,必须要三天后才可,本来看到一些不错的帖子,想回帖或者是跟大家一起讨论的时候,结果看到回复处的“三天”提示,唉。。。。。。 呵呵,发发牢骚,三天前在这里论坛看到一篇理解ruby标志的文章,好像是翻译的吧,看了下,感觉不错,看到后面朋友们的回复,让俺获益良多,本来自己也想凑凑热闹回复一下,发表自己的看法,结果“三天”提示让俺偃旗息鼓,今天终于到了期限,不用再看到那可恶的“三天”提示了,呵呵。 关于ruby中标志的概念就不多说了,在论坛里已经有很详细的解释,在论坛那帖子的回复里,很多朋友都是针对于RUBY中标志和JAVA字符串池哪个处理得更好而进行的讨论,其实关于java做得好还是ruby做得好,我个人认为不应该这样去看,我们应该从ruby本身的语言特性来看,在ruby中,任何一个字面值都是一个独立的对象,包括数字,字符等,问题就在“独立”这两个字上,ruby本身的意愿就是每一个字面值都是独立的,例如: 这两个是完全不同的字符串对象,ruby的本意是完全面向对象,这种同值而不同对象的方式是ruby的需要,也是完全面向对象的需要,至少我是如此认为,所以在这一特性之下,ruby就自然不能使用java的字符串池方式,而symbol的出现也就是必然的了,有的人说java处理得好,有的人说ruby处理的好,其实这些看法我个人觉得就过于片面,凭心而论,我个人觉得java字符串池的方式更省心,也更好用,但是就面向对象的角度来看,symbol更合理,第一次来这里发表看法,个人愚见,由于技术有限,所写有误处请指正,谢谢! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-02-17
就一个原因,更快,因为比较地址。
|
|
返回顶楼 | |
发表时间:2007-02-17
这个当然,两者目的基本都是一样的
|
|
返回顶楼 | |
发表时间:2007-02-23
楼主:
引用 这种同值而不同对象的方式是ruby的需要,也是完全面向对象的需要,至少我是如此认为,所以在这一特性之下,ruby就自然不能使用java的字符串池方式
不以为然, java对常量字符串产用字符串池的方式, 以及ruby 不使用, 这是两者实现上的问题. 首先因为java 需要编译, 这样在编译期就可以进行优化, 所以这只是字符串优化上的一种措施, 而Ruby 所有对象都是在运行时构建起来的,所以如果再进行字符串池的操作, 就是画蛇添足了. 楼主: 引用 而symbol的出现也就是必然的
必然吗? 一个类而已 towjzhou: 就一个原因,更快,因为比较地址。 何出此言? |
|
返回顶楼 | |
发表时间:2007-02-24
我只是认为这一点不应该从其实现不同这方面来看,而更应该注重他如此做的用意,也许语言创作者本身也是想做到相同字面值不同对象这一点,从这点看来,symbol的出现属于必然,当然这也只是我一家的看法,事实上语言创作者本意如何也只有他自己才知道了。
|
|
返回顶楼 | |
发表时间:2007-02-28
symbol确实是比较地址,我不知道动态语言怎么实现的,反正在C里面,专门有一个symbol table是用来存放symbol的,不过C中的symbol好像是有类型的……
|
|
返回顶楼 | |
浏览 4105 次