实例变量,类变量以及它们之间的区别在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"