【发布时间】:2016-06-23 05:19:41
【问题描述】:
我有一个包含正则表达式键的 JSON 文件,其中包含基于发送消息的响应(例如,您好,Dragnflier!)。该文件包含如下值:
{
"/hello/i" : "Why hello there!",
"/how are you.*dragnflier/i" : "I'm good thank you! How are you?"
}
我在我的 ruby 程序开始时将它们加载到哈希中。有没有一种更有效的方法来查看消息是否与我的哈希中的任何正则表达式匹配,而不是使用所有键对其进行循环?我想获取键返回的值,而不是键列表或布尔值。
【问题讨论】:
-
您没有发布代码。我们无法猜测我们看不到的代码的性能;-)
-
正如问题所述,我只是在使用循环。循环通常是搜索数据的效率最低的方法。作为参考,它只是 commands.keys.each do |key| ....在我想要一个结果的情况下找到匹配项时打破循环,如果我想要多个结果则继续到最后。
-
嗯,根据我的经验,使用代码的“描述”会导致很大的混乱和误解。您说“只是一个 foo”,但我可能会将其解释为“只是一个 FOO”。此外,要归档一个“基线”来测试所有想要回答这个问题的人,现在必须编写一个循环。为什么不这样做为我们工作? ;-)
-
公平点。它更多地是一个笼统的问题,而不是一个具体的问题。