ruby 冻结对象

「爱情、让人受尽委屈。」 2022-06-04 10:19 356阅读 0赞
  1. ruby Object中,freeze方法可以有效地把一个对象变成一个常量。任何对象都可以通过调用Object.freeze进行冻结。冻结对象不能被修改,也就是说,不能改变他的实例变量。可使用Object.frozen?方法检查一个给定的对象是否已经冻结。如果被冻结,该方法将返回true,否则返回一个false值。
  2. ####冻结对象####
  3. #在Object中,freeze方法可有效地把一个对象变成一个常量。任何对象都可以通过调用Object.freeze进行冻结。
  4. #定义类
  5. class Box
  6. #构造器方法
  7. def initialize(w, h)
  8. @width, @height = w, h
  9. end
  10. #访问器方法
  11. def getWidth
  12. @width
  13. end
  14. def getHeight
  15. @height
  16. end
  17. #设置器方法
  18. def setWidth=(value)
  19. @width = value
  20. end
  21. def setHeight=(value)
  22. @height = value
  23. end
  24. end
  25. #创建对象
  26. box = Box.new(10, 20)
  27. #冻结该对象
  28. box.freeze
  29. if(box.frozen?)
  30. puts "Box Object is frozen object"
  31. else
  32. puts "Box Object is normal object"
  33. end
  34. #现在尝试使用设置器方法
  35. # box.setWidth = 30
  36. # box.setHeight = 50
  37. #使用访问器方法
  38. x = box.getWidth()
  39. y = box.getHeight()
  40. puts "Width of the box is:#{x}"
  41. puts "height of the box is:#{y}"

发表评论

表情:
评论列表 (有 0 条评论,356人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Object.freeze()冻结对象

    用处: 1、一个大的数据对象里,在你确信它不需要改变的时候,你可以给他freeze(),可以大大的增加性能。 2、也可用作冻结线上的配置文件中的对象,以防有人误改。