可以用class来做。
value.class value.is_a? 类型(String, Integer 等等)来查看具体类型。
在Java中,对于字面量的字符串,jvm内部维持一张表,因此如果在Java中,str1和str2是同一个String对象。而在Ruby中, str1和str2是完全不同的对象。同样,在java中对于String对象的操作都将产生一个新的对象,而Ruby则是操纵同一个对象,比如:str="abc"
str.concat("cdf")
此时str就是"abccdf"。Ruby对String是怎么处理的呢?我们只谈谈c ruby中的实现,有兴趣的先看看这篇文章《管窥Ruby——对象基础》。在ruby.h中我们可以看到String对象的结构,Ruby中的对象(包括类也是对象)都是一个一个的struct,String也不能例外:
struct RString {
struct RBasic basic
long len
char *ptr
union {
long capa
VALUE shared
Python和Ruby都是解释性语言,语法简洁明了,类型无需专门定义,例如int char等都不用声明,一般java ,C 等需要用10~30行代码量,python,ruby只需要几行就搞掂:C语言
HELLO WORLD程序如下:
#include <stdio.h>
main()
{printf("Hello World!\n")
}
python:
print "Hello World!"
ruby:
puts "Hello World!" / print "Hello World!" 都可以!兼容性很好控制语句也是,C习惯也可以兼容,也可以for ...i ...in range()
ruby和python差不多,代码编写速度会快很多,用来实现程序逻辑测试,开发速度飞快;但是执行速度就差了,因为不定义类型的原因,这就只是个人的理解了;更多的,你可以多看看网上的专题,那会更详细。