创建UITableViewController时,有时我只需要函数中的indexPath,当使用_忽略tableView参数时是否有性能改进?
例:使用:

override func tableView(_: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)

而不是这个:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

最佳答案

一般来说,这属于“微观优化”范畴。
即使有差异,也可能是微不足道的
与你计划的其他部分相比。很有可能
编译器注意到未使用的参数并优化代码
因此。你应该决定什么样的参数名最适合
感觉到你的处境。
在这种特殊情况下,它根本没有任何区别。
如何命名(内部)方法参数只影响编译
阶段,但不更改生成的代码。
你可以很容易地验证
你自己。创建源文件“main.swift”:

// main.swift
import Swift

func foo(str : String) -> Int {
    return 100
}

func bar(_ : String) -> Int {
    return 100
}

println(foo("a"))
println(bar("b"))

现在编译它并检查生成的程序集代码:
swiftc-o-emit汇编main.swift
两种方法的程序集代码完全相同:
.私人外卖
.global_uuu tf4main3foofsssi
.对齐4,0x90
_ tf4main3foofsssi(主功能3辅助功能):
PushQ%红细胞压
MOVQ%相对标准偏差,%相对标准偏差
MOVQ%RDX%,RDI
未知的呼叫
MOVL 100美元,EAX%
POPQ%彩铃
雷特克
.private_extern_uu tf4main3barfsssi外部
.global_uuu tf4main3barfsssi公司
.对齐4,0x90
_ TF4main3barfsssi:
PushQ%红细胞压
MOVQ%相对标准偏差,%相对标准偏差
MOVQ%RDX%,RDI
未知的呼叫
MOVL 100美元,EAX%
POPQ%彩铃
雷特克

关于swift - 使用_忽略Swift中的参数时是否有性能提升?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30129226/

10-12 12:54
查看更多