对于某些测试,我正在寻找具有方法#to_str的Ruby内置类或模块(不是String)。
(我知道很多人都有方法#to_s,但这不是我想要的。)
我仔细研究了文档,找不到任何此类文档。
最简单的方法是问Ruby自己:
ObjectSpace.
each_object(Module).
select {|mod| mod.instance_methods(false).include?(:to_str) } -
[String]
#=> [NameError::message]
Run Code Online (Sandbox Code Playgroud)
因此,事实证明,定义的唯一其他类to_str是内部的内部实现类NameError。实际上,这是有道理的,Ruby中没有很多对象是字符串,但不是的实例String。
例如,我希望可以使用Ropes库(如果存在这种东西)to_str。