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