可以用class来做。
value.class value.is_a? 类型(String, Integer 等等)来查看具体类型。
Class Aend
a=A.new
puts "#{a.class}"
puts "#{a.class.class}"
输出结果:
A
Class
所以a.class可以取得a的类的名称
在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