我想创建一个类,在该类的对象初始化期间将提供的值分配给其中一个变量,这样它就无法更改。例如:
person = Person.new("Tom")
person.name #=> Tom
person.name = "Bob"
这应该会引发错误或:
person.name #=> Tom -> still
我想创建一个类,在该类的对象初始化期间将提供的值分配给其中一个变量,这样它就无法更改。例如:
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