加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何冻结Ruby引用?

发布时间:2020-12-17 02:58:51 所属栏目:百科 来源:网络整理
导读:我使用Object#freeze来冻结对象的值.我可以编写一个函数来深度冻结复杂的对象结构.但两者都不会阻止我为对象分配新值. $O=cl()$O.thorough_freeze$O[:file] = "makefile" # = TypeError$O[:commands][0] = "clean" # = TypeError$O = "reticulate" # = TypeE
我使用Object#freeze来冻结对象的值.我可以编写一个函数来深度冻结复杂的对象结构.但两者都不会阻止我为对象分配新值.

$O=cl()
$O.thorough_freeze
$O[:file] = "makefile"      # => TypeError
$O[:commands][0] = "clean"  # => TypeError
$O = "reticulate"           # => TypeError

在C我说

int const * const ptr = argv;

如何彻底冻结标识符?

解决方法

没有办法做到这一点.如果变量是常量(以大写字母开头),那么如果您尝试重新分配变量,则会看到警告,但仍会进行重新分配.例如

irb(main):008:0> MyConst = my_obj
=> #<MyClass:0x2b8a66c>
irb(main):009:0> MyConst = my_other
(irb):9: warning: already initialized constant MyConst
=> #<MyClass:0x2b854b4>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读