在宇宙的尽头,是否有一只猫在弹奏着吉他,而它就是我们的类变量初始值?
- 内容介绍
- 文章标签
- 相关推荐
本文共计256个文字,预计阅读时间需要2分钟。
参考英文答案+Total newbie: Instance variables in Ruby? 4个+在PHP中我编写了:Class Test { public $a=100; } $a=new Test(); echo $a->a; // prints 100 它打印了100,但在我用Ruby编写的时候:class Test @a=100 attr_accessor :a end
参见英文答案 > Total newbie: Instance variables in ruby?4个在PHP中我写道:
Class Test{ public $a=100; } $a=new Test(); echo $a->a; //prints 100
它打印100,但在我写的时候是ruby:
class Test @a=100 attr_accessor :a end a=Test.new puts a.a #=> prints nil
a为零,打印为零.为什么?
你混合了一些东西.你用@a = 100定义的是一个类实例变量.
您将使用attr_accessor访问的内容:a是一个实例变量@a.
实例变量用法示例:
class A def initialize a @a = a end attr_accessor :a end instance = A.new(2) #=> 2 instance.instance_variables #=> [:@a] instance.a #=> 2
类实例变量用法示例:
class A @a = 1 class << self attr_accessor :a end end A.a #=> nil A.a = 2 #=> 2 A.a #=> 2 instance = A.new instance.class.a # access instance's class instance variable #=> 2
本文共计256个文字,预计阅读时间需要2分钟。
参考英文答案+Total newbie: Instance variables in Ruby? 4个+在PHP中我编写了:Class Test { public $a=100; } $a=new Test(); echo $a->a; // prints 100 它打印了100,但在我用Ruby编写的时候:class Test @a=100 attr_accessor :a end
参见英文答案 > Total newbie: Instance variables in ruby?4个在PHP中我写道:
Class Test{ public $a=100; } $a=new Test(); echo $a->a; //prints 100
它打印100,但在我写的时候是ruby:
class Test @a=100 attr_accessor :a end a=Test.new puts a.a #=> prints nil
a为零,打印为零.为什么?
你混合了一些东西.你用@a = 100定义的是一个类实例变量.
您将使用attr_accessor访问的内容:a是一个实例变量@a.
实例变量用法示例:
class A def initialize a @a = a end attr_accessor :a end instance = A.new(2) #=> 2 instance.instance_variables #=> [:@a] instance.a #=> 2
类实例变量用法示例:
class A @a = 1 class << self attr_accessor :a end end A.a #=> nil A.a = 2 #=> 2 A.a #=> 2 instance = A.new instance.class.a # access instance's class instance variable #=> 2

