1

我想创建一个类,在该类的对象初始化期间将提供的值分配给其中一个变量,这样它就无法更改。例如:

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

这应该会引发错误或:

person.name #=> Tom -> still
4

2 回答 2

2
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
于 2013-08-11T04:29:15.623 回答
1

我认为这会对您有所帮助: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
于 2013-08-11T00:33:20.617 回答