swift - 在 Swift 中使用 _ 忽略参数是否会提高性能?

标签 swift performance

创建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-assembly main.swift

两种方法的汇编代码完全相同:

    .private_extern __TF4main3fooFSSSi
    .globl  __TF4main3fooFSSSi
    .align  4, 0x90
__TF4main3fooFSSSi:
    pushq   %rbp
    movq    %rsp, %rbp
    movq    %rdx, %rdi
    callq   _swift_unknownRelease
    movl    $100, %eax
    popq    %rbp
    retq

    .private_extern __TF4main3barFSSSi
    .globl  __TF4main3barFSSSi
    .align  4, 0x90
__TF4main3barFSSSi:
    pushq   %rbp
    movq    %rsp, %rbp
    movq    %rdx, %rdi
    callq   _swift_unknownRelease
    movl    $100, %eax
    popq    %rbp
    retq

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

相关文章:

java - 如何改进这个填充日历网格的算法?

sql - 使用子查询更新与使用连接更新 - 哪个性能更好

JavaScript 错误/不良实践

ios - 使用 Swift 强制 NSLocalizedString 使用特定语言

while循环中的php性能问题

sql - select count(1) 与 select rowcnt from sysindexes 性能和使用?

swift - 遵循 Spritekit EXC_BAD_ACCESS 中的路径

ios - 如何访问 UITableView 中每一行的相册

ios - XCUIApplication 上的 swipeUp() 破坏了 UITest 中的 XCUIApplication

ios - 推送新 View Controller 时最后一个 Controller 的内容可见