如何在Ruby中创建变量public final

我想创建一个类,在初始化此类的Object期间,将为其中一个变量赋值,这样就无法更改。 例如:

person = Person.new("Tom") person.name #=> Tom person.name = "Bob" 

这应该引发错误或:

 person.name #=> Tom -> still 

 class Person def initialize name @name = name end attr_reader :name end person = Person.new("Tom") person.name #=> Tom begin person.name = "Bob" rescue puts $!.message # => Undefined method error end person.name #=> Tom 

我想这会对你有所帮助: ruby中的静态变量

 class Foo @@foos = 0 def initialize @@foos += 1 end def self.number_of_foos @@foos end end Foo.new Foo.new Foo.number_of_foos #=> 2