查看: 1818|回复: 2

[已经过期] 令我头疼的实例变量,应该如何理解

[复制链接]
梦石
0
星屑
4761
在线时间
285 小时
注册时间
2013-10-13
回帖
580
发表于 2013-12-12 22:09:55 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
F1中说,这个attr_accessor:name 和下面的这个相同意思
def name                             
    return @name
end                                                       生成@name变量
def name=(name)
    @name = name
end                                                     不知道下面是怎么附加属性的?属性是什么意思?

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
回帖
3011
发表于 2013-12-12 23:48:01 | 显示全部楼层
  1. attr_accessor :name    # 把@name设置为外部可读可写
  2. def name    # 定义一个名为name的函数,没有参数
  3.   return @name    # 函数被调用时返回@name这个变量
  4. end
  5. def name=(n)    # 定义一个有等于的name函数,有参数
  6.   @name = n    # 把@name这个变量定为参数
  7. end
复制代码

评分

参与人数 1星屑 +90 收起 理由
myownroc + 90 认可答案

查看全部评分

本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到engshun@1ppl.me咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复

使用道具 举报

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
回帖
2257

贵宾

发表于 2013-12-13 23:57:10 | 显示全部楼层
本帖最后由 Sion 于 2013-12-14 00:05 编辑

这个只是方法定义而已。
实例变量和方法定义是2个东西。
attr_accessor 定义的这2个方法分别用于读取和修改实例里的实例变量。
再次重申,attr_accessor 就是快速定义跟实例变量名一样的方法而已。
类似的还有 attr_reader 和 attr_writer 。
脚本里那个 “ ● 定义实例变量 ” 实在是一个渣解释

评分

参与人数 1星屑 +90 收起 理由
myownroc + 90 认可答案

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部