swift - 未使用的变量和 '_'

标签 swift

我正在使用 learnxinyminutes.com 快速学习

我很难理解网站上示例的一个组成部分(如下),即在 let 语句中使用下划线而不是变量名。

// Variadic Args
func setup(numbers: Int...) {
    let _ = numbers[0]
    let _ = numbers.count
}

我知道如果你从不声明变量,swift 希望你使用下划线,但是 1) 你为什么要声明你从不使用的变量?并且 2) 如果您使用 _,是否有办法获取这些值。并且,3) 如果是这样,怎么做到的?

最佳答案

1) 为什么要声明从未使用过的变量?

通常你不会!但在某些情况下您可能想要这样做,例如 Danny Buonocore 给出的示例。另一个例子可能是这样的:假设你想在做某事之前检查一个变量是否为非零,尽管你不需要为后续代码使用该变量。 (保护声明在这些情况下可能更有用)。

if let _ = titleString {
// Do something that doesn't use titleString, but where it being non-nil means this operation is valid
}

另一个例子是 Swift 函数。调用函数时必须标识第二个、第三个等参数的名称。例如:

func externalizedParameters(first: Int?, second: Int?) {
...
}

使用 externalizedParameters(5, second: 6) 调用。

但是如果您正在做一些微不足道的事情,并且函数名称已经清楚地表明了两个参数是什么,例如交换操作,您可能不希望强制调用者显式声明第二个参数的名称。在这种情况下,您可以使用“_”,因为您不关心该外部化参数的名称:

func swap(first: Int?, _ second: Int?) {
    ...
}

这可以称为 swap(5, 6) 而不是 swap(5, second: 6)

2) 如果您使用 _. & 3) 如果是,怎么做?

没有。如果要使用该值,则需要为变量命名。

关于swift - 未使用的变量和 '_',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38667125/

相关文章:

swift - 添加 subview 并使用自动布局将前缘与 super View 和环绕 View 对齐

ios - 没有.self的swift类作为参数

IOS - 如何从 WKWebView 获取缓存资源?

ios - 类型 'GFEventType' 没有成员 'KeyEntered'

ios - WatchOS2中使用NSTimeInterval触发通知

ios - 是否有混合模式或其他我可以为 UIControls 设置的内容,以便我可以看到其下面的图层?

swift - 对一系列协议(protocol)进行排序,寻找父协议(protocol)

ios - 即使应用程序已关闭且未在后台运行,谷歌地图如何始终跟踪用户位置?

swift - 检测最大化/最小化窗口事件并以编程方式执行

ios - 导航栏问题, swift