任何人都可以在红宝石中为undef布置实际用途吗?我来自javascript和python这样没有内置的语言.你当然可以用javascript之类的语言模拟它:
var obj = { func:function(){alert("works")} }
obj.func() // -> "works"
delete(obj["func"])
obj.func() //->obj.func() is not a function
Run Code Online (Sandbox Code Playgroud)
但我从来没有真正使用过它.是否有一些常见的情况,其中undef实际上有用?
编辑 - 刚刚在"红宝石编程语言"一书中遇到过这个问题:
另一种防止复制对象的技术是使用undef来简单地删除clone和dup方法.另一种方法是重新定义clone和dup方法,以便它们引发异常,并显示一条错误消息,明确指出不允许复制.这样的错误消息可能对正在使用您的类的程序员有所帮助.