在ruby中如何使用类级别的局部变量? (一个红宝石新手的问题)

前端之家收集整理的这篇文章主要介绍了在ruby中如何使用类级别的局部变量? (一个红宝石新手的问题)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以假设我有这个(不工作):
class User
   description = "I am User class variable"
   def print
       puts description
   end
end

那么,我应该如何使用var描述,如何将其作为默认参数传递给方法,或者直接在方法中使用?谢谢..

解决方法

在您的情况下,描述只是局部变量.您可以使用特殊字符@,@ @,$更改此范围:
a = 5
defined? a
=> "local-variable"

@a = 5
defined? @a
=> "instance-variable"

@@a = 5
defined? @@a
=> "class variable"

$a = 5
defined? $a
=> "global-variable"

为了您的目的,我认为可能是通过这种方式使用

class User
  def initialize(description)
    @description = description
  end

  def print
      puts @description
  end
end

obj = User.new("I am User")
obj.print
# => I am User

猜你在找的Ruby相关文章