Ruby中如何定义变量之间的引用关系?

Python012

Ruby中如何定义变量之间的引用关系?,第1张

int jimmy//声明一个int类型变量

string ruby//string类型变量

jimmy = Console.Read()//接受输入的字符,转为int类型返回给jimmy

Console.Write(jimmy)//输出jimmy的值

Console.WriteLine(jimmy)//输出jimmy的值并换行

Console.WriteLine((char)jimmy)//转换为字符型之后输出jimmy的值

ruby = Console.ReadLine()//输入一个字符串赋值给 ruby

Console.Write(ruby)//输出ruby

Console.WriteLine(ruby)//输出ruby字符串并换行

Console.ReadLine()//等待输入

在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