实例变量,类变量以及它们之间的区别在ruby中
我很难理解实例变量,类变量以及它们之间在ruby中的区别……有人可以向我解释它们吗? 我已经完成了大量的谷歌搜索,完全无法理解它们。
谢谢!
假设您定义了一个类。 一个类可以有零个或多个实例。
class Post end p1 = Post.new p2 = Post.new
实例变量在特定实例中作用域。 这意味着如果你有一个实例变量title
,每个post都有自己的标题。
class Post def initialize(title) @title = title end def title @title end end p1 = Post.new("First post") p2 = Post.new("Second post") p1.title # => "First post" p2.title # => "Second post"
相反,类变量在该类的所有实例之间共享。
class Post @@blog = "The blog" def initialize(title) @title = title end def title @title end def blog @@blog end def blog=(value) @@blog = value end end p1 = Post.new("First post") p2 = Post.new("Second post") p1.title # => "First post" p2.title # => "Second post" p1.blog # => "The blog" p2.blog # => "The blog" p1.blog = "New blog" p1.blog # => "New blog" p2.blog # => "New blog"