ruby - 如何在 Ruby 中使变量成为 public final

标签 ruby variables immutability

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

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 - 如何在 Ruby 中使变量成为 public final,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18167614/

相关文章:

ruby-on-rails - 使用 CanCan 的上下文感知授权

ruby - 可以在一行中将一个集合枚举到一个数组中吗?

bash - 无法访问bash括号内的变量

java - 不变性和可读性

ruby-on-rails - rails 找到帖子的 user_id = user 的所有评论

ruby - 在 Yosemite 10.10.3 上安装 Nokogiri

php - 使用 jQuery Ajax 获取单独的 PHP 变量

php - 引用php代码部分

javascript - Immutable Js - 使用不可变 js 更新深层嵌套树

python - 为什么我们可以更改元组中的字典值?