是否有任何文档说明为什么应该使用compile_pattern/1
结果作为binary:replace/4
搜索的模式?
我怀疑这是出于性能原因,但我无法找到任何正式声明的内容。
答案 0 :(得分:6)
我不知道任何明确说明它的文档,但是是的,这是出于性能原因。如果将未编译的模式传递给binary
模块中的调用,它们将编译模式然后使用它。这意味着对于单次使用,首先编译并不重要,因为无论如何调用都会编译它。但是如果你使用相同的模式执行多个匹配或替换,那么有必要先预先编译它,然后将编译后的模式传递给每个调用。