在Ruby中,是否存在不响应to_s
的对象?
这个问题并不是想问是否可以创建一个不响应to_s
的对象,我知道可以通过undef_method
来实现。请随意解释细节,包括取消定义的注意事项。
在Ruby中,是否存在不响应to_s
的对象?
这个问题并不是想问是否可以创建一个不响应to_s
的对象,我知道可以通过undef_method
来实现。请随意解释细节,包括取消定义的注意事项。
BasicObject
类没有定义 to_s
方法,因此该类的任何实例都没有 to_s
方法。
BasicObject
,但请确保您不需要标准类中的任何功能。 - Jonas FagundesObject
(你必须显式地从BasicObject
继承才能避免默认父类)。因此,“在Ruby中是否有任何不响应to_s
方法的对象?”的答案是没有 :) (BasicObject
不是Object
,但反过来是正确的 :)) - Jonas FagundesObject
类,并且通常不写成“一个对象”,而是写成大写的“(一个实例) Object”。在另一种意义下,它表示面向对象编程中对象的含义,包括 BasicObject
类的实例。你将 OP 的写作“是否有任何对象…”改写为“是否有任何 Objects…”(加粗是我添加的),但那是你的技巧。也许你已经注意到了 OP 指的是第二个意义的对象,而不是第一个。 - sawa