问题:纯函数一旦没有使用好,就会造成非常大量的重复调用,不如不用
只想看解决方案直接往下找,字很大
为什么会重复调用
下面看两个例子吧
例子一:
随便弄个拼接字符串的纯函数,在纯函数内部放一个打印
看一下打印结果,纯函数内部打印是紫色,外面打印是黑色
感觉上应该是只走一次纯函数,但实际是走了两次
这个性能消耗你觉得还好,那没问题,咱们看第二个例子
例子二:
随便弄个纯函数,在函数内部造出来一个数组,返回出来
然后用这个数组进行循环
看一下打印结果,纯函数内部打印是紫色,外面打印是黑色
好吧,总共纯函数用了21次
你先别管这个为啥运行这么多次,先想
你是不是在项目中有纯函数,在循环内,或者作为循环输入在调用?
-----------------------------------解决方案-----------------------------------
当我意识到这个问题之后我非常仔细的想了下,我觉得还挺恐怖的。。。
那我们来聊聊解决方案
1.不要吝啬创建变量(Variables),尤其是本地变量(Local Variables),如果调用非常频繁,而且恰巧你需要纯函数这个形式,那么就把结果存下来,看我存下来
2.如果不是非常需要纯函数,你可以不用纯函数,或者准备两个一模一样的函数,一个纯函数,一个正常的,看我创建一个一样的(函数内打印换成紫色了)