Swift减少print函数的耗费

前端之家收集整理的这篇文章主要介绍了Swift减少print函数的耗费前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

尽管print声明不会在设备的console里打印,但它们甚至在Release版本和设备上也会执行,这些执行可能会带来一些耗费。

特别的,它的参数仍然被模拟求值。如果你的print调用只有一个参数,这里有一个变通方法。你可以通过定义自己的全局级别的print方法来重写Swift的print方法,并且使用@autoclosure修饰器推迟其参数求值,就像assert做的那样:

func print(_ item: @autoclosure () -> Any,separator: String = " ",terminator: String = "\n") { #if DEBUG Swift.print(item(),separator:separator,terminator: terminator) #endif }

当你调用print(myExpensiveFunction())时,这个定制print方法调用。这意味着在闭包中包裹的myExpensiveFunction()方法不会被立即求值。

如果你只在Swift的Debug配置标志中定义了-DDEBUG,那么在Release配置下构建的app中,myExpensiveFunction()将永远不会被求值,因为item()不会被调用

原文链接:https://www.f2er.com/swift/321614.html

猜你在找的Swift相关文章