【发布时间】:2019-06-11 19:55:00
【问题描述】:
我已经使用 erlangs ets 功能缓存了一堆邮政编码和经纬度值。
如下图...
iex()> :ets.new(:postcode_cache, [:named_table])
:postcode_cache
iex()> :ets.insert(:postcode_cache, [{"OX495NU", "latlongvalue"},{"M320JG", "latlongvalue"}])
true
这类似于我在应用程序中创建的 ets 表。我想创建一个函数,它只从缓存中选择条目,其中邮政编码包含用户输入的子字符串。有没有办法做到这一点,如果有,我将如何实现这个功能?
(将来我可能只想使用 lat-long 值选择一定距离内的值,但这超出了这个问题的范围)。
为了清楚起见,表格类似于下面的灵药清单...
iex()> postcode_list = [{"OX495NU","latlong"}, {"M320JG", "latlong"}]
我想用 ets 复制的功能是这样的......
iex()> Enum.filter(list, fn({postcode, _}) -> if String.contains?(postcode, "OX49") end)
[{"OX495NU", "latlong"}]
【问题讨论】: