2
我想查找名称与字符串匹配的所有ruby类(忽略大小写)。 这意味着该字符串应该是类名的子字符串。
因此,当您搜索'stri'时,您应该获得类别String
(等等)。查找名称与字符串匹配的所有类
你知道一个方便而不是太低效的方法吗?
我想查找名称与字符串匹配的所有ruby类(忽略大小写)。 这意味着该字符串应该是类名的子字符串。
因此,当您搜索'stri'时,您应该获得类别String
(等等)。查找名称与字符串匹配的所有类
你知道一个方便而不是太低效的方法吗?
ObjectSpace.each_object(Class)
.select{|klass| klass.name.downcase.include?("stri".downcase)}
# => [
String,
RubyToken::TkDXSTRING,
RubyToken::TkDSTRING,
RubyToken::TkXSTRING,
RubyToken::TkSTRING
]
你应该也会使用'stri''。并使其成为方法中的参数。 – 2013-05-13 13:59:14
请注意'ObjectSpace'可能包含应该被垃圾收集但垃圾收集器尚未运行的“陈旧”对象。 IOW:这种方法可能会返回实际上不再存在的类。 – 2013-05-13 14:51:44
@JörgWMittag只要有一个名字的类,他们被分配到一个常量,这意味着他们不是垃圾收集。我错了吗? – sawa 2013-05-13 14:58:59