ruby - ruby 中的静态/实例变量

标签 ruby

我是 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

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

最佳答案

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

>> Fixnum.class
=> Class

Fixnum 该类是 Class 的实例!

关于ruby - ruby 中的静态/实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11088222/

相关文章:

ruby - Ruby 有 mkdir -p 吗?

Ruby:从循环迭代方法中返回更清晰的结果

Ruby EventMachine 和函数

ruby-on-rails - 如何使用 jquery-Tokeninput 和 Acts-as-taggable-on

ruby-on-rails - 我如何在 Ubuntu 中使用 gem?

ruby - 你能在 Ruby 中定义 <=> 然后自动定义 ==、>、<、>= 和 <= 吗?

Ruby exception.message 花费太多时间

ruby-on-rails - Rails 路由命名空间错误?

ruby-on-rails - 基于另一个数组从一个数组中删除值的最快方法

ruby-on-rails - Rails 用户 'unseen pages' 计数器