iteye_11360 2008-08-05 21:00
浏览 147
已采纳

ruby 实例 变量的讨论

因为时间原因, ruby的书没有读, 属于看着别人代码学习ruby的那种人。目前遇到一个关于实例变量的问题,想请教大家。先看代码
[code="ruby"]
class Test

attr_accessor :info

@info = 'who am i?'
@@info = 'who am i class?'

def change_info

@info = 'info changed'

end

def self.get_info

@info

end

def get_info
@info
end

def get_info2
@@info
end

def self.get_info2
@@info
end
end

a = Test.new

a.info = 'info1'

puts a.info

a.change_info

puts a.info

puts a.get_info
puts Test.get_info

puts a.class.get_info
puts a.get_info2
puts Test.get_info2
[/code]

运行结果:
[code="ruby"]
info1
info changed
info changed
who am i?
who am i?
who am i class?
who am i class?
[/code]
请问这个写在方法外面的@info是什么意思呢?应该不是实例变量但是也不是类变量

大家的意见呢?
[b]问题补充:[/b]
看了open2ye的回答,我想我的问题就是:
irb(main):066:0> Test2.instance_variables
=> ["@v"]
irb(main):067:0> Test2.new.instance_variables
=> []

这里Test2为什么会有instance_variables, instance是什么?如果Test2有instance variable为什么我产生了一个instance里面却又没有@v了呢?

  • 写回答

2条回答 默认 最新

  • Open2ye 2008-08-06 16:30
    关注

    因为在 Ruby 中, 类Test2 也是实例

    详细请看

    http://www.iteye.com/topic/200720

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!