尾递归就是操作的最后一步是调用自身的递归。
觉得上面的论述十分清晰,以廖雪峰的官方网站-递归函数里面的例子为例:
求一个数字的阶乘
优化为尾递归
尾递归在一些编译器中会做优化,防止栈内存爆掉。因为尾递归调用之后不依赖上次调用的环境(资源),如上述代码最后一步,每次调用
都会把计算的值存储在变量 m 中,不会等到最后一层调用完毕之后再释放资源。
尾递归就是操作的最后一步是调用自身的递归。
觉得上面的论述十分清晰,以廖雪峰的官方网站-递归函数里面的例子为例:
求一个数字的阶乘
优化为尾递归
尾递归在一些编译器中会做优化,防止栈内存爆掉。因为尾递归调用之后不依赖上次调用的环境(资源),如上述代码最后一步,每次调用
都会把计算的值存储在变量 m 中,不会等到最后一层调用完毕之后再释放资源。
查看APP UI使用Reveal,但是想看一些代码的头文件,则需要使用class-dump。之前看一些APP的头文件偷懒都是直接在某助手上直接下载的砸壳成功的文件,今天有时间,手动试一下砸壳,参考文章:
iOS安全—dumpdecrypted APP砸壳