所以假设我有这个(不工作):
class User
description = "I am User class variable"
def print
puts description
end
end
Run Code Online (Sandbox Code Playgroud)
那么,我应该如何使用var描述,如何将其作为默认参数传递给方法,或者直接在方法中使用?谢谢..
在您的情况下,description是唯一的局部变量。您可以使用特殊字符@, @@,更改此范围$:
a = 5
defined? a
=> "local-variable"
@a = 5
defined? @a
=> "instance-variable"
@@a = 5
defined? @@a
=> "class variable"
$a = 5
defined? $a
=> "global-variable"
Run Code Online (Sandbox Code Playgroud)
为了您的目的,我认为它可能会以这种方式使用
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
Run Code Online (Sandbox Code Playgroud)
您可以使用 访问类范围define_method。
class User
description = "I am User class variable"
define_method :print do
puts description
end
end
Run Code Online (Sandbox Code Playgroud)
> User.new.print
我是 User 类变量
=> nil
不过我认为这不是个好主意:)
要定义类变量,请使用@@:
class User
@@description = "I am a User class variable"
def print
puts @@description
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5006 次 |
| 最近记录: |