打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ruby系列教材(19):Variables

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

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
深入分析Ruby 变量
SSH实现的增删改查实例
Servlet 数据库访问 | 菜鸟教程
CHAPTER 7 References引用探索 - Velocity空间 - BlogJ...
findBugs的一些功能说明
__weak和__block区别
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服