ruby系列教材(19):Variables

上一篇 / 下一篇  2008-02-02 15:17:43 / 个人分类:Ruby

Variables:

1.reference指向用于保存object的内存空间,variable保存着这个reference

 

2.几个特殊的methods:

s = "references"

s.id              #返回reference s的 id

s.class         #返回s 的class

 

3.我们知道使用赋值,表示的是一个aliases,例如:

name = "kc"

name2 = name

这时候name 和 name2 是相同的值,我们可以共同 name.id 和 name2.id 判断,他们指着同一块内存空间

相比:这样的方式

name = "kc"

name2 = name.dup          #构造一个新的reference,并且return

结果name,name2有一样的内容,但是区别在于,name.id != name2.id

 

说道String,这里要说一下和java里面不同的地方:

name = "kc"

puts name[0]    #结果是k

puts name[1]    #结果是c

这里对String的访问就提供了灵活性,java的字符串是不可以改变的,必须要通过一些特殊的途径,这就显得比较死板,ruby有很好的方式,就像c++语言,比如说:

name[0] = p

puts name     #结果是pc

通过一种方式可以使得String不能被修改:

name.freeze  #freeze name

name[0]="k"

TypeError: can't modify frozen string
        from (irb):5:in `[]='
        from (irb):5

 

出现了问题,freeze迫使修改变的不再可能。freeze 继承于 Ojbect


TAG: Ruby

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-08  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 22897
  • 日志数: 47
  • 建立时间: 2008-01-29
  • 更新时间: 2008-02-02

RSS订阅

Open Toolbar