浏览 3132 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-15
随别写个什么函数foo,在运行时用gets先获得用户在console中的输入,然后在运行foo。我先把程序run起来,然后修改foo的内容,接着在console中输入一些字符串,运行结果是foo在修改之前应该输出的结果。 从结果看来,ruby把源代码加载进来后,就不去动态检查它是不是被修改了。而且从require和load方法的说明上看,require只加载一次,load会在每次用到的时候加载。 我一直以为ruby所谓的动态语言是可以在runtime动态响应源代码的修改的,现在看起来好像不是。那么它的动态到底是什么呢?仅仅是动态类型吗?还有,RoR中我改变一些源代码,马上就可以响应到application中,这难道是server的功能,而不是ruby的能力? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-12-15
看一下下面这个例子:
ruby 代码
输出是: 1 2 3 4 5 看来如果想在运行时动态加载代码,要手动调用load,看来这应该就是解决问题的方法了。和Java对比一下,java中没有什么好的方法可以动态加载一个.class文件,即使加载进去了,使用的时候也很不方便(作为meta object来使用)。不知道Java什么时候也可以动态reload。 不过像Ruby这样也会有安全上的问题。比如javaeye,如果我能从某些渠道了解到它的源代码,哪怕只是一点点。那么Ruby中的class是open的,有可以动态load文件,我就可以做很多的“事情”,这个要怎么解决呢。 |
|
返回顶楼 | |
发表时间:2006-12-15
服务器不在你手里,你怎么做?
|
|
返回顶楼 | |
发表时间:2006-12-15
发表文章的时候上传附件。
|
|
返回顶楼 | |