加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby中的静态/实例变量

发布时间:2020-12-17 02:32:04 所属栏目:百科 来源:网络整理
导读:我是一个 Ruby新手.有一个关于静态和实例变量的基本问题. class Test def self.init @@var_static = 1 @member = 2 end def self.print puts "@@var_static: #{@@var_static}" puts "@member: #{@member}" endendTest.initTest.print 为什么上面的代码允许初
我是一个 Ruby新手.有一个关于静态和实例变量的基本问题.

class Test

  def self.init
    @@var_static = 1
    @member = 2
  end

  def self.print
    puts "@@var_static: #{@@var_static}"
    puts "@member: #{@member}"
  end

end

Test.init
Test.print

为什么上面的代码允许初始化成员变量:@member,在静态方法中:Test :: init?我的理解是@member的使用会抛出一个错误,因为它没有绑定任何类Test的实例.但是不会抛出任何错误.

解决方法

类是一个对象的实例,并且可以像任何其他对象一样拥有实例变量:

>> Fixnum.class
=> Class

Fixnum类是Class的一个实例!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读