1.9.2p290 :091 > class CaeReal2
1.9.2p290 :092?> exit
1.9.2p290 :093?> end
不知道楼主啥意思,但是看楼上的回复,让我想起以前的一件事,调程序的时候发现了这么一个情况
irb(main):001:0> (4.1 - 0.1).to_i
=> 3
贴到群里,然后就有人冒出来说“ruby 竟然这样”,“惊天 bug 啊”之类的……
放到其他语言里,会是什么样呢?
js 里面的
>parseInt(4.1-0.1)
>3
java 的
public static void main(String[] args) {
// TODO code application logic here
System.out.println((int)(4.1 - 0.1));
}
----------
run:
3
楼主其实说的是动态语言的本质
几乎所有语句都在运行时执行,而不同于静态语言
比如:定义变量,定义函数,定义 class 之类的,在 C 语言里由编译器执行。而在 ruby 里定义过程本身也是代码,也有返回值,都在运行时执行
#14 楼 @chucai 不是一个层面的东西...解释型语言只是用解释器执行而已,并不一定拥有动态语言的特性,而有一些编译型的语言,却具有动态特性,比如 objective-c 具体请看 wiki ~ http://zh.wikipedia.org/wiki/%E5%8A%A8%E6%80%81%E8%AF%AD%E8%A8%80